Commit b5659cb0 authored by antirez's avatar antirez
Browse files

Increment pointer while iterating sparse HLL object.

parent 1ccb6615
...@@ -581,9 +581,11 @@ sds hllSparseToDense(sds sparse) { ...@@ -581,9 +581,11 @@ sds hllSparseToDense(sds sparse) {
if (HLL_SPARSE_IS_ZERO(p)) { if (HLL_SPARSE_IS_ZERO(p)) {
runlen = HLL_SPARSE_ZERO_LEN(p); runlen = HLL_SPARSE_ZERO_LEN(p);
idx += runlen; idx += runlen;
p++;
} else if (HLL_SPARSE_IS_XZERO(p)) { } else if (HLL_SPARSE_IS_XZERO(p)) {
runlen = HLL_SPARSE_XZERO_LEN(p); runlen = HLL_SPARSE_XZERO_LEN(p);
idx += runlen; idx += runlen;
p += 2;
} else { } else {
runlen = HLL_SPARSE_VAL_LEN(p); runlen = HLL_SPARSE_VAL_LEN(p);
regval = HLL_SPARSE_VAL_VALUE(p); regval = HLL_SPARSE_VAL_VALUE(p);
...@@ -591,6 +593,7 @@ sds hllSparseToDense(sds sparse) { ...@@ -591,6 +593,7 @@ sds hllSparseToDense(sds sparse) {
HLL_DENSE_SET_REGISTER(hdr->registers,idx,regval); HLL_DENSE_SET_REGISTER(hdr->registers,idx,regval);
idx++; idx++;
} }
p++;
} }
} }
...@@ -821,16 +824,19 @@ double hllSparseSum(uint8_t *sparse, int sparselen, double *PE, int *ezp) { ...@@ -821,16 +824,19 @@ double hllSparseSum(uint8_t *sparse, int sparselen, double *PE, int *ezp) {
idx += runlen; idx += runlen;
ez += runlen; ez += runlen;
E += 1; /* 2^(-reg[j]) is 1 when m is 0. */ E += 1; /* 2^(-reg[j]) is 1 when m is 0. */
p++;
} else if (HLL_SPARSE_IS_XZERO(p)) { } else if (HLL_SPARSE_IS_XZERO(p)) {
runlen = HLL_SPARSE_XZERO_LEN(p); runlen = HLL_SPARSE_XZERO_LEN(p);
idx += runlen; idx += runlen;
ez += runlen; ez += runlen;
E += 1; /* 2^(-reg[j]) is 1 when m is 0. */ E += 1; /* 2^(-reg[j]) is 1 when m is 0. */
p += 2;
} else { } else {
runlen = HLL_SPARSE_VAL_LEN(p); runlen = HLL_SPARSE_VAL_LEN(p);
regval = HLL_SPARSE_VAL_VALUE(p); regval = HLL_SPARSE_VAL_VALUE(p);
idx += runlen; idx += runlen;
E += PE[regval]*runlen; E += PE[regval]*runlen;
p++;
} }
} }
redisAssert(idx == HLL_REGISTERS); redisAssert(idx == HLL_REGISTERS);
......
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