]> git.saurik.com Git - redis.git/blobdiff - src/t_zset.c
New in INFO: aof_last_bgrewrite_status
[redis.git] / src / t_zset.c
index d2535c72794baa95cbbd77048f8e78cb7489ef5f..4812709e19048c67acc25ab337fcc30d3e48ac8f 100644 (file)
@@ -502,7 +502,7 @@ int zzlIsInRange(unsigned char *zl, zrangespec *range) {
         return 0;
 
     p = ziplistIndex(zl,-1); /* Last score. */
         return 0;
 
     p = ziplistIndex(zl,-1); /* Last score. */
-    redisAssert(p != NULL);
+    if (p == NULL) return 0; /* Empty sorted set */
     score = zzlGetScore(p);
     if (!zslValueGteMin(score,range))
         return 0;
     score = zzlGetScore(p);
     if (!zslValueGteMin(score,range))
         return 0;
@@ -1254,13 +1254,16 @@ int zuiNext(zsetopsrc *op, zsetopval *val) {
     if (val->flags & OPVAL_DIRTY_ROBJ)
         decrRefCount(val->ele);
 
     if (val->flags & OPVAL_DIRTY_ROBJ)
         decrRefCount(val->ele);
 
-    bzero(val,sizeof(zsetopval));
+    memset(val,0,sizeof(zsetopval));
 
     if (op->type == REDIS_SET) {
         iterset *it = &op->iter.set;
         if (op->encoding == REDIS_ENCODING_INTSET) {
 
     if (op->type == REDIS_SET) {
         iterset *it = &op->iter.set;
         if (op->encoding == REDIS_ENCODING_INTSET) {
-            if (!intsetGet(it->is.is,it->is.ii,(int64_t*)&val->ell))
+            int64_t ell;
+
+            if (!intsetGet(it->is.is,it->is.ii,&ell))
                 return 0;
                 return 0;
+            val->ell = ell;
             val->score = 1.0;
 
             /* Move to next element. */
             val->score = 1.0;
 
             /* Move to next element. */