Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
ruanhaishen
hiredis
Commits
adb0895e
Commit
adb0895e
authored
Nov 26, 2010
by
Pieter Noordhuis
Browse files
Rename 'parent' field in read tasks to 'obj'
parent
b4dd17b5
Changes
2
Show whitespace changes
Inline
Side-by-side
hiredis.c
View file @
adb0895e
...
@@ -112,7 +112,7 @@ static void *createStringObject(const redisReadTask *task, char *str, size_t len
...
@@ -112,7 +112,7 @@ static void *createStringObject(const redisReadTask *task, char *str, size_t len
r
->
len
=
len
;
r
->
len
=
len
;
if
(
task
->
parent
)
{
if
(
task
->
parent
)
{
redisReply
*
parent
=
task
->
parent
;
redisReply
*
parent
=
task
->
parent
->
obj
;
assert
(
parent
->
type
==
REDIS_REPLY_ARRAY
);
assert
(
parent
->
type
==
REDIS_REPLY_ARRAY
);
parent
->
element
[
task
->
idx
]
=
r
;
parent
->
element
[
task
->
idx
]
=
r
;
}
}
...
@@ -125,7 +125,7 @@ static void *createArrayObject(const redisReadTask *task, int elements) {
...
@@ -125,7 +125,7 @@ static void *createArrayObject(const redisReadTask *task, int elements) {
if
((
r
->
element
=
calloc
(
sizeof
(
redisReply
*
),
elements
))
==
NULL
)
if
((
r
->
element
=
calloc
(
sizeof
(
redisReply
*
),
elements
))
==
NULL
)
redisOOM
();
redisOOM
();
if
(
task
->
parent
)
{
if
(
task
->
parent
)
{
redisReply
*
parent
=
task
->
parent
;
redisReply
*
parent
=
task
->
parent
->
obj
;
assert
(
parent
->
type
==
REDIS_REPLY_ARRAY
);
assert
(
parent
->
type
==
REDIS_REPLY_ARRAY
);
parent
->
element
[
task
->
idx
]
=
r
;
parent
->
element
[
task
->
idx
]
=
r
;
}
}
...
@@ -136,7 +136,7 @@ static void *createIntegerObject(const redisReadTask *task, long long value) {
...
@@ -136,7 +136,7 @@ static void *createIntegerObject(const redisReadTask *task, long long value) {
redisReply
*
r
=
createReplyObject
(
REDIS_REPLY_INTEGER
);
redisReply
*
r
=
createReplyObject
(
REDIS_REPLY_INTEGER
);
r
->
integer
=
value
;
r
->
integer
=
value
;
if
(
task
->
parent
)
{
if
(
task
->
parent
)
{
redisReply
*
parent
=
task
->
parent
;
redisReply
*
parent
=
task
->
parent
->
obj
;
assert
(
parent
->
type
==
REDIS_REPLY_ARRAY
);
assert
(
parent
->
type
==
REDIS_REPLY_ARRAY
);
parent
->
element
[
task
->
idx
]
=
r
;
parent
->
element
[
task
->
idx
]
=
r
;
}
}
...
@@ -146,7 +146,7 @@ static void *createIntegerObject(const redisReadTask *task, long long value) {
...
@@ -146,7 +146,7 @@ static void *createIntegerObject(const redisReadTask *task, long long value) {
static
void
*
createNilObject
(
const
redisReadTask
*
task
)
{
static
void
*
createNilObject
(
const
redisReadTask
*
task
)
{
redisReply
*
r
=
createReplyObject
(
REDIS_REPLY_NIL
);
redisReply
*
r
=
createReplyObject
(
REDIS_REPLY_NIL
);
if
(
task
->
parent
)
{
if
(
task
->
parent
)
{
redisReply
*
parent
=
task
->
parent
;
redisReply
*
parent
=
task
->
parent
->
obj
;
assert
(
parent
->
type
==
REDIS_REPLY_ARRAY
);
assert
(
parent
->
type
==
REDIS_REPLY_ARRAY
);
parent
->
element
[
task
->
idx
]
=
r
;
parent
->
element
[
task
->
idx
]
=
r
;
}
}
...
@@ -316,12 +316,13 @@ static int processMultiBulkItem(redisReader *r) {
...
@@ -316,12 +316,13 @@ static int processMultiBulkItem(redisReader *r) {
/* Modify task stack when there are more than 0 elements. */
/* Modify task stack when there are more than 0 elements. */
if
(
elements
>
0
)
{
if
(
elements
>
0
)
{
cur
->
elements
=
elements
;
cur
->
elements
=
elements
;
cur
->
obj
=
obj
;
r
->
ridx
++
;
r
->
ridx
++
;
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
].
parentTask
=
cur
;
r
->
rstack
[
r
->
ridx
].
idx
=
0
;
r
->
rstack
[
r
->
ridx
].
idx
=
0
;
r
->
rstack
[
r
->
ridx
].
obj
=
NULL
;
r
->
rstack
[
r
->
ridx
].
parent
=
cur
;
r
->
rstack
[
r
->
ridx
].
privdata
=
r
->
privdata
;
r
->
rstack
[
r
->
ridx
].
privdata
=
r
->
privdata
;
}
else
{
}
else
{
moveToNextTask
(
r
);
moveToNextTask
(
r
);
...
@@ -478,8 +479,9 @@ int redisReplyReaderGetReply(void *reader, void **reply) {
...
@@ -478,8 +479,9 @@ 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
=
r
->
rstack
[
0
].
parentTask
=
NULL
;
r
->
rstack
[
0
].
idx
=
-
1
;
r
->
rstack
[
0
].
idx
=
-
1
;
r
->
rstack
[
0
].
obj
=
NULL
;
r
->
rstack
[
0
].
parent
=
NULL
;
r
->
rstack
[
0
].
privdata
=
r
->
privdata
;
r
->
rstack
[
0
].
privdata
=
r
->
privdata
;
r
->
ridx
=
0
;
r
->
ridx
=
0
;
}
}
...
...
hiredis.h
View file @
adb0895e
...
@@ -86,9 +86,9 @@ typedef struct redisReply {
...
@@ -86,9 +86,9 @@ typedef struct redisReply {
typedef
struct
redisReadTask
{
typedef
struct
redisReadTask
{
int
type
;
int
type
;
int
elements
;
/* number of elements in multibulk container */
int
elements
;
/* number of elements in multibulk container */
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
*
obj
;
/* holds user-generated value for a read task */
struct
redisReadTask
*
parent
;
/* parent task */
void
*
privdata
;
/* user-settable arbitrary field */
void
*
privdata
;
/* user-settable arbitrary field */
}
redisReadTask
;
}
redisReadTask
;
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment