]> git.saurik.com Git - redis.git/commitdiff
RDB hashes loading, fixed another bug in the loading of HT-encoded hashes: when the...
authorantirez <antirez@gmail.com>
Tue, 13 Mar 2012 09:59:29 +0000 (10:59 +0100)
committerantirez <antirez@gmail.com>
Tue, 13 Mar 2012 10:00:18 +0000 (11:00 +0100)
src/rdb.c

index 4a56659de07554320e5077c72f7c2b7364019b5c..519b645d157281e86b6e2213ddfdfb648e36069a 100644 (file)
--- a/src/rdb.c
+++ b/src/rdb.c
@@ -856,6 +856,10 @@ robj *rdbLoadObject(int rdbtype, rio *rdb) {
             if (value == NULL) return NULL;
             redisAssert(field->encoding == REDIS_ENCODING_RAW);
 
+            /* Add pair to ziplist */
+            o->ptr = ziplistPush(o->ptr, field->ptr, sdslen(field->ptr), ZIPLIST_TAIL);
+            o->ptr = ziplistPush(o->ptr, value->ptr, sdslen(value->ptr), ZIPLIST_TAIL);
+
             /* Convert to hash table if size threshold is exceeded */
             if (sdslen(field->ptr) > server.hash_max_ziplist_value ||
                 sdslen(value->ptr) > server.hash_max_ziplist_value)
@@ -863,10 +867,6 @@ robj *rdbLoadObject(int rdbtype, rio *rdb) {
                 hashTypeConvert(o, REDIS_ENCODING_HT);
                 break;
             }
-
-            /* Add pair to ziplist */
-            o->ptr = ziplistPush(o->ptr, field->ptr, sdslen(field->ptr), ZIPLIST_TAIL);
-            o->ptr = ziplistPush(o->ptr, value->ptr, sdslen(value->ptr), ZIPLIST_TAIL);
         }
 
         /* Load remaining fields and values into the hash table */