提交 3b200035 编写于 作者: A antirez

hllSparseAdd(): more correct dense conversion conditional.

We want to promote if the total string size exceeds the resulting size
after the upgrade.
上级 b7571b74
......@@ -801,7 +801,7 @@ int hllSparseAdd(robj *o, unsigned char *ele, size_t elesize) {
int oldlen = is_xzero ? 2 : 1;
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);
sdsIncrLen(o->ptr,deltalen);
memcpy(p,seq,seqlen);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册