Commit 127c15e2 authored by Matt Stancliff's avatar Matt Stancliff
Browse files

Convert RDB ziplist loading to sdsnative()

This saves us an unnecessary zmalloc, memcpy, and two frees.
parent e1619772
...@@ -981,13 +981,9 @@ robj *rdbLoadObject(int rdbtype, rio *rdb) { ...@@ -981,13 +981,9 @@ robj *rdbLoadObject(int rdbtype, rio *rdb) {
rdbtype == REDIS_RDB_TYPE_ZSET_ZIPLIST || rdbtype == REDIS_RDB_TYPE_ZSET_ZIPLIST ||
rdbtype == REDIS_RDB_TYPE_HASH_ZIPLIST) rdbtype == REDIS_RDB_TYPE_HASH_ZIPLIST)
{ {
robj *aux = rdbLoadStringObject(rdb); o = rdbLoadStringObject(rdb);
if (o == NULL) return NULL;
if (aux == NULL) return NULL; o->ptr = sdsnative(o->ptr);
o = createObject(REDIS_STRING,NULL); /* string is just placeholder */
o->ptr = zmalloc(sdslen(aux->ptr));
memcpy(o->ptr,aux->ptr,sdslen(aux->ptr));
decrRefCount(aux);
/* Fix the object encoding, and make sure to convert the encoded /* Fix the object encoding, and make sure to convert the encoded
* data type into the base type if accordingly to the current * data type into the base type if accordingly to the current
......
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