/* The fake client should not have a reply */
redisAssert(fakeClient->bufpos == 0 && listLength(fakeClient->reply) == 0);
- /* Clean up, ready for the next command */
- for (j = 0; j < argc; j++) decrRefCount(argv[j]);
- zfree(argv);
+ /* Clean up. Command code may have changed argv/argc so we use the
+ * argv/argc of the client instead of the local variables. */
+ for (j = 0; j < fakeClient->argc; j++)
+ decrRefCount(fakeClient->argv[j]);
+ zfree(fakeClient->argv);
}
/* This point can only be reached when EOF is reached without errors.
/* Iterate this DB writing every entry */
while((de = dictNext(di)) != NULL) {
- sds keystr = dictGetEntryKey(de);
+ sds keystr;
robj key, *o;
time_t expiretime;
}
zzlNext(zl,&eptr,&sptr);
}
- } else if (o->encoding == REDIS_ENCODING_RAW) {
+ } else if (o->encoding == REDIS_ENCODING_SKIPLIST) {
zset *zs = o->ptr;
dictIterator *di = dictGetIterator(zs->dict);
dictEntry *de;