Merge pull request #246 from dmelani/master

Less surprising behaviour in redisFree() and freeReplyObject()
This commit is contained in:
Pieter Noordhuis 2014-05-29 08:20:43 -07:00
commit 2602e1b6bc
2 changed files with 20 additions and 0 deletions

View File

@ -73,6 +73,9 @@ void freeReplyObject(void *reply) {
redisReply *r = reply;
size_t j;
if (r == NULL)
return;
switch(r->type) {
case REDIS_REPLY_INTEGER:
break; /* Nothing to free */
@ -1001,6 +1004,8 @@ static redisContext *redisContextInit(void) {
}
void redisFree(redisContext *c) {
if (c == NULL)
return;
if (c->fd > 0)
close(c->fd);
if (c->obuf != NULL)

15
test.c
View File

@ -318,6 +318,19 @@ static void test_reply_reader(void) {
redisReaderFree(reader);
}
static void test_free_null(void) {
void *redisContext = NULL;
void *reply = NULL;
test("Don't fail when redisFree is passed a NULL value: ");
redisFree(redisContext);
test_cond(redisContext == NULL);
test("Don't fail when freeReplyObject is passed a NULL value: ");
freeReplyObject(reply);
test_cond(reply == NULL);
}
static void test_blocking_connection_errors(void) {
redisContext *c;
@ -702,6 +715,7 @@ int main(int argc, char **argv) {
test_format_commands();
test_reply_reader();
test_blocking_connection_errors();
test_free_null();
printf("\nTesting against TCP connection (%s:%d):\n", cfg.tcp.host, cfg.tcp.port);
cfg.type = CONN_TCP;
@ -723,6 +737,7 @@ int main(int argc, char **argv) {
test_blocking_connection(cfg);
}
if (fails) {
printf("*** %d TESTS FAILED ***\n", fails);
return 1;