X-Git-Url: https://git.saurik.com/redis.git/blobdiff_plain/0b10e1044496699585b401196dd86e19a9f87cc4..9f9b60f974cb57923c88a585a75db4b82711288b:/src/t_zset.c diff --git a/src/t_zset.c b/src/t_zset.c index 790fb573..9119e592 100644 --- a/src/t_zset.c +++ b/src/t_zset.c @@ -449,7 +449,7 @@ int zzlCompareElements(unsigned char *eptr, unsigned char *cstr, unsigned int cl return cmp; } -unsigned int *zzlLength(robj *zobj) { +unsigned int zzlLength(robj *zobj) { unsigned char *zl = zobj->ptr; return ziplistLen(zl)/2; } @@ -524,7 +524,6 @@ int zzlInsert(robj *zobj, robj *ele, double score) { unsigned char *zl = zobj->ptr; unsigned char *eptr = ziplistIndex(zl,0), *sptr; double s; - int insert = 0; ele = getDecodedObject(ele); while (eptr != NULL) { @@ -536,16 +535,14 @@ int zzlInsert(robj *zobj, robj *ele, double score) { /* First element with score larger than score for element to be * inserted. This means we should take its spot in the list to * maintain ordering. */ - insert = 1; - } else if (s == score) { - /* Ensure lexicographical ordering for elements. */ - if (zzlCompareElements(eptr,ele->ptr,sdslen(ele->ptr)) < 0) - insert = 1; - } - - if (insert) { zzlInsertAt(zobj,ele,score,eptr); break; + } else if (s == score) { + /* Ensure lexicographical ordering for elements. */ + if (zzlCompareElements(eptr,ele->ptr,sdslen(ele->ptr)) < 0) { + zzlInsertAt(zobj,ele,score,eptr); + break; + } } /* Move to next element. */ @@ -553,8 +550,8 @@ int zzlInsert(robj *zobj, robj *ele, double score) { } /* Push on tail of list when it was not yet inserted. */ - if (!insert) - zzlInsertAt(zobj,ele,score,eptr); + if (eptr == NULL) + zzlInsertAt(zobj,ele,score,NULL); decrRefCount(ele); return REDIS_OK;