Fix error in scan algorithm

The irrelevant bits shouldn't be masked to 1. This can result in slots being
skipped when the hash table is resized between calls to the iterator.
This commit is contained in:
Pieter Noordhuis
2013-10-29 16:19:12 +01:00
committed by antirez
parent 8c4ff679fe
commit fd22106a98
-8
View File
@@ -729,14 +729,6 @@ unsigned long dictScan(dict *d,
v++;
v = rev(v);
/* Only preprare cursor for the next iteration when it is non-zero,
* so that 0 can be used as end-of-scan sentinel. */
if (v) {
/* Set unmasked bits so the cursor will keep its position
* regardless of the mask in the next iterations */
v |= ~m0;
}
return v;
}