]> git.saurik.com Git - redis.git/blobdiff - src/ziplist.c
BITOP: handle integer encoded objects correctly.
[redis.git] / src / ziplist.c
index 420f13042ef53b345037d11a242067e23c60a59e..31e61633e5b1ad494468b021658ed75f455cf2cc 100644 (file)
@@ -346,7 +346,6 @@ static int64_t zipLoadInteger(unsigned char *p, unsigned char encoding) {
     int16_t i16;
     int32_t i32;
     int64_t i64, ret = 0;
     int16_t i16;
     int32_t i32;
     int64_t i64, ret = 0;
-    printf("%02x\n", encoding);
     if (encoding == ZIP_INT_8B) {
         ret = ((char*)p)[0];
     } else if (encoding == ZIP_INT_16B) {
     if (encoding == ZIP_INT_8B) {
         ret = ((char*)p)[0];
     } else if (encoding == ZIP_INT_16B) {
@@ -774,12 +773,11 @@ unsigned int ziplistCompare(unsigned char *p, unsigned char *sstr, unsigned int
             return 0;
         }
     } else {
             return 0;
         }
     } else {
-        /* Try to compare encoded values */
+        /* Try to compare encoded values. Don't compare encoding because
+         * different implementations may encoded integers differently. */
         if (zipTryEncoding(sstr,slen,&sval,&sencoding)) {
         if (zipTryEncoding(sstr,slen,&sval,&sencoding)) {
-            if (entry.encoding == sencoding) {
-                zval = zipLoadInteger(p+entry.headersize,entry.encoding);
-                return zval == sval;
-            }
+          zval = zipLoadInteger(p+entry.headersize,entry.encoding);
+          return zval == sval;
         }
     }
     return 0;
         }
     }
     return 0;