Fix hllSparseAdd() new sequence replacement when next is NULL.

sdsIncrLen() must be called anyway even if we are replacing the last
oppcode of the sparse representation.
This commit is contained in:
antirez 2014-04-12 23:55:29 +02:00
parent c66e5e83a8
commit 2b4f24e746

View File

@ -784,10 +784,8 @@ int hllSparseAdd(robj *o, unsigned char *ele, size_t elesize) {
int deltalen = seqlen-oldlen; int deltalen = seqlen-oldlen;
if (deltalen > 0 && sdslen(o->ptr) > HLL_SPARSE_MAX) goto promote; if (deltalen > 0 && sdslen(o->ptr) > HLL_SPARSE_MAX) goto promote;
if (deltalen && next) { if (deltalen && next) memmove(next+deltalen,next,next-sparse);
memmove(next+deltalen,next,next-sparse);
sdsIncrLen(o->ptr,deltalen); sdsIncrLen(o->ptr,deltalen);
}
memcpy(p,seq,seqlen); memcpy(p,seq,seqlen);
updated: updated: