Commit da084bdf authored by antirez's avatar antirez
Browse files

hllSparseAdd(): more correct dense conversion conditional.

We want to promote if the total string size exceeds the resulting size
after the upgrade.
parent a7dbd28c
...@@ -801,7 +801,7 @@ int hllSparseAdd(robj *o, unsigned char *ele, size_t elesize) { ...@@ -801,7 +801,7 @@ int hllSparseAdd(robj *o, unsigned char *ele, size_t elesize) {
int oldlen = is_xzero ? 2 : 1; int oldlen = is_xzero ? 2 : 1;
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)+deltalen > HLL_SPARSE_MAX) goto promote;
if (deltalen && next) memmove(next+deltalen,next,next-sparse); if (deltalen && next) memmove(next+deltalen,next,next-sparse);
sdsIncrLen(o->ptr,deltalen); sdsIncrLen(o->ptr,deltalen);
memcpy(p,seq,seqlen); memcpy(p,seq,seqlen);
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment