summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorantirez <antirez@gmail.com>2013-08-16 15:31:25 +0200
committerantirez <antirez@gmail.com>2013-08-19 15:02:34 +0200
commitd9bf918d5b4d22a0b6d81a66408a6953571b6866 (patch)
tree51963f11ead47d408ae6961cd489310c647975d4 /src
parentbf3932ed9f9bc83ca8e4d97cee121478057a490e (diff)
downloadredis-d9bf918d5b4d22a0b6d81a66408a6953571b6866.tar.gz
Fix comments for correctness in zunionInterGenericCommand().
Related to issue #1240.
Diffstat (limited to 'src')
-rw-r--r--src/t_zset.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/src/t_zset.c b/src/t_zset.c
index f7ec467eb..983bac327 100644
--- a/src/t_zset.c
+++ b/src/t_zset.c
@@ -1620,7 +1620,7 @@ void zunionInterGenericCommand(redisClient *c, robj *dstkey, int op) {
while (zuiNext(&src[i],&zval)) {
double score, value;
- /* Skip key when already processed */
+ /* Skip an element that when already processed */
if (dictFind(dstzset->dict,zuiObjectFromValue(&zval)) != NULL)
continue;
@@ -1628,8 +1628,10 @@ void zunionInterGenericCommand(redisClient *c, robj *dstkey, int op) {
score = src[i].weight * zval.score;
if (isnan(score)) score = 0;
- /* Because the inputs are sorted by size, it's only possible
- * for sets at larger indices to hold this element. */
+ /* We need to check only next sets to see if this element
+ * exists, since we process every element just one time so
+ * it can't exist in a previous set (otherwise it would be
+ * already processed). */
for (j = (i+1); j < setnum; j++) {
/* It is not safe to access the zset we are
* iterating, so explicitly check for equal object. */