Explicitly initialize struct fields to NULL
This commit is contained in:
parent
0b27639e09
commit
09a0fe626f
13
async.c
13
async.c
@ -38,8 +38,17 @@ void __redisAppendCommand(redisContext *c, char *cmd, size_t len);
|
|||||||
|
|
||||||
static redisAsyncContext *redisAsyncInitialize(redisContext *c) {
|
static redisAsyncContext *redisAsyncInitialize(redisContext *c) {
|
||||||
redisAsyncContext *ac = realloc(c,sizeof(redisAsyncContext));
|
redisAsyncContext *ac = realloc(c,sizeof(redisAsyncContext));
|
||||||
/* Set all bytes in the async part of the context to 0 */
|
ac->err = 0;
|
||||||
memset(ac+sizeof(redisContext),0,sizeof(redisAsyncContext)-sizeof(redisContext));
|
ac->errstr = NULL;
|
||||||
|
ac->data = NULL;
|
||||||
|
ac->evAddRead = NULL;
|
||||||
|
ac->evDelRead = NULL;
|
||||||
|
ac->evAddWrite = NULL;
|
||||||
|
ac->evDelWrite = NULL;
|
||||||
|
ac->evCleanup = NULL;
|
||||||
|
ac->onDisconnect = NULL;
|
||||||
|
ac->replies.head = NULL;
|
||||||
|
ac->replies.tail = NULL;
|
||||||
return ac;
|
return ac;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
4
async.h
4
async.h
@ -58,6 +58,9 @@ typedef struct redisAsyncContext {
|
|||||||
int err;
|
int err;
|
||||||
char *errstr;
|
char *errstr;
|
||||||
|
|
||||||
|
/* Not used by hiredis */
|
||||||
|
void *data;
|
||||||
|
|
||||||
/* Called when the library expects to start reading/writing.
|
/* Called when the library expects to start reading/writing.
|
||||||
* The supplied functions should be idempotent. */
|
* The supplied functions should be idempotent. */
|
||||||
void (*evAddRead)(void *privdata);
|
void (*evAddRead)(void *privdata);
|
||||||
@ -65,7 +68,6 @@ typedef struct redisAsyncContext {
|
|||||||
void (*evAddWrite)(void *privdata);
|
void (*evAddWrite)(void *privdata);
|
||||||
void (*evDelWrite)(void *privdata);
|
void (*evDelWrite)(void *privdata);
|
||||||
void (*evCleanup)(void *privdata);
|
void (*evCleanup)(void *privdata);
|
||||||
void *data;
|
|
||||||
|
|
||||||
/* Called when either the connection is terminated due to an error or per
|
/* Called when either the connection is terminated due to an error or per
|
||||||
* user request. The status is set accordingly (REDIS_OK, REDIS_ERR). */
|
* user request. The status is set accordingly (REDIS_OK, REDIS_ERR). */
|
||||||
|
Loading…
Reference in New Issue
Block a user