Commit a8dca69b authored by Pieter Noordhuis's avatar Pieter Noordhuis
Browse files

use raw strings when loading a hash from the rdb into a zipmap

parent f6475c72
...@@ -4258,10 +4258,16 @@ static robj *rdbLoadObject(int type, FILE *fp) { ...@@ -4258,10 +4258,16 @@ static robj *rdbLoadObject(int type, FILE *fp) {
if (o->encoding == REDIS_ENCODING_ZIPMAP) { if (o->encoding == REDIS_ENCODING_ZIPMAP) {
unsigned char *zm = o->ptr; unsigned char *zm = o->ptr;
robj *deckey, *decval;
zm = zipmapSet(zm,key->ptr,sdslen(key->ptr), /* We need raw string objects to add them to the zipmap */
val->ptr,sdslen(val->ptr),NULL); deckey = getDecodedObject(key);
decval = getDecodedObject(val);
zm = zipmapSet(zm,deckey->ptr,sdslen(deckey->ptr),
decval->ptr,sdslen(decval->ptr),NULL);
o->ptr = zm; o->ptr = zm;
decrRefCount(deckey);
decrRefCount(decval);
decrRefCount(key); decrRefCount(key);
decrRefCount(val); decrRefCount(val);
} else { } else {
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment