MIGRATE: Fix new argument rewriting refcount handling.

This commit is contained in:
antirez 2015-12-11 14:26:41 +01:00
parent d85fc1e9cf
commit ac0a731057

View File

@ -4763,8 +4763,6 @@ try_again:
} }
} else { } else {
if (!copy) { if (!copy) {
robj *aux;
/* No COPY option: remove the local key, signal the change. */ /* No COPY option: remove the local key, signal the change. */
dbDelete(c->db,kv[j]); dbDelete(c->db,kv[j]);
signalModifiedKey(c->db,kv[j]); signalModifiedKey(c->db,kv[j]);
@ -4772,6 +4770,7 @@ try_again:
/* Populate the argument vector to replace the old one. */ /* Populate the argument vector to replace the old one. */
newargv[del_idx++] = kv[j]; newargv[del_idx++] = kv[j];
incrRefCount(kv[j]);
} }
} }
} }
@ -4780,7 +4779,7 @@ try_again:
/* Translate MIGRATE as DEL for replication/AOF. */ /* Translate MIGRATE as DEL for replication/AOF. */
if (del_idx > 1) { if (del_idx > 1) {
newargv[0] = createStringObject("DEL",3); newargv[0] = createStringObject("DEL",3);
replaceClientCommandVector(c,newargv,del_idx); replaceClientCommandVector(c,del_idx,newargv);
} else { } else {
/* No key transfer acknowledged, no need to rewrite as DEL. */ /* No key transfer acknowledged, no need to rewrite as DEL. */
zfree(newargv); zfree(newargv);