From 80140fa0069f48ee4753c90a9c6cec41ba26f44e Mon Sep 17 00:00:00 2001 From: antirez Date: Sat, 12 Apr 2014 23:55:29 +0200 Subject: [PATCH] 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. --- src/hyperloglog.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/src/hyperloglog.c b/src/hyperloglog.c index 119cbab1c..5a19443b4 100644 --- a/src/hyperloglog.c +++ b/src/hyperloglog.c @@ -784,10 +784,8 @@ int hllSparseAdd(robj *o, unsigned char *ele, size_t elesize) { int deltalen = seqlen-oldlen; if (deltalen > 0 && sdslen(o->ptr) > HLL_SPARSE_MAX) goto promote; - if (deltalen && next) { - memmove(next+deltalen,next,next-sparse); - sdsIncrLen(o->ptr,deltalen); - } + if (deltalen && next) memmove(next+deltalen,next,next-sparse); + sdsIncrLen(o->ptr,deltalen); memcpy(p,seq,seqlen); updated: