Commit d4058be7 authored by Pieter Noordhuis's avatar Pieter Noordhuis
Browse files

Add pointer to parent task in read tasks

parent 3d702d0b
...@@ -313,6 +313,7 @@ static int processMultiBulkItem(redisReader *r) { ...@@ -313,6 +313,7 @@ static int processMultiBulkItem(redisReader *r) {
r->rstack[r->ridx].type = -1; r->rstack[r->ridx].type = -1;
r->rstack[r->ridx].elements = -1; r->rstack[r->ridx].elements = -1;
r->rstack[r->ridx].parent = obj; r->rstack[r->ridx].parent = obj;
r->rstack[r->ridx].parentTask = cur;
r->rstack[r->ridx].idx = 0; r->rstack[r->ridx].idx = 0;
r->rstack[r->ridx].privdata = r->privdata; r->rstack[r->ridx].privdata = r->privdata;
} else { } else {
...@@ -471,7 +472,7 @@ int redisReplyReaderGetReply(void *reader, void **reply) { ...@@ -471,7 +472,7 @@ int redisReplyReaderGetReply(void *reader, void **reply) {
if (r->ridx == -1) { if (r->ridx == -1) {
r->rstack[0].type = -1; r->rstack[0].type = -1;
r->rstack[0].elements = -1; r->rstack[0].elements = -1;
r->rstack[0].parent = NULL; r->rstack[0].parent = r->rstack[0].parentTask = NULL;
r->rstack[0].idx = -1; r->rstack[0].idx = -1;
r->rstack[0].privdata = r->privdata; r->rstack[0].privdata = r->privdata;
r->ridx = 0; r->ridx = 0;
......
...@@ -88,6 +88,7 @@ typedef struct redisReadTask { ...@@ -88,6 +88,7 @@ typedef struct redisReadTask {
int elements; /* number of elements in multibulk container */ int elements; /* number of elements in multibulk container */
void *parent; /* optional pointer to parent object */ void *parent; /* optional pointer to parent object */
int idx; /* index in parent (array) object */ int idx; /* index in parent (array) object */
struct redisReadTask *parentTask; /* pointer to parent task */
void *privdata; /* user-settable arbitrary field */ void *privdata; /* user-settable arbitrary field */
} redisReadTask; } redisReadTask;
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment