X-Git-Url: https://git.saurik.com/redis.git/blobdiff_plain/5d08193126df54405dae3073c62b7c19ae03d1a4..4f948300bc26abb0aaa99343bc9f089ea98a9abe:/src/object.c diff --git a/src/object.c b/src/object.c index 22f53837..20e7f57a 100644 --- a/src/object.c +++ b/src/object.c @@ -180,7 +180,7 @@ void decrRefCount(void *obj) { robj *o = obj; if (o->refcount <= 0) redisPanic("decrRefCount against refcount <= 0"); - if (--(o->refcount) == 0) { + if (o->refcount == 1) { switch(o->type) { case REDIS_STRING: freeStringObject(o); break; case REDIS_LIST: freeListObject(o); break; @@ -189,8 +189,9 @@ void decrRefCount(void *obj) { case REDIS_HASH: freeHashObject(o); break; default: redisPanic("Unknown object type"); break; } - o->ptr = NULL; /* defensive programming. We'll see NULL in traces. */ zfree(o); + } else { + o->refcount--; } }