From 004c26ec28dcd1e578f0a224e3222b391777d71b Mon Sep 17 00:00:00 2001 From: chendianqiang Date: Mon, 22 Jul 2019 17:45:30 +0800 Subject: [PATCH] make memory usage consistent of robj with OBJ_ENCODING_INT --- src/object.c | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/src/object.c b/src/object.c index ec0bd02e..43f46b02 100644 --- a/src/object.c +++ b/src/object.c @@ -455,10 +455,15 @@ robj *tryObjectEncoding(robj *o) { incrRefCount(shared.integers[value]); return shared.integers[value]; } else { - if (o->encoding == OBJ_ENCODING_RAW) sdsfree(o->ptr); - o->encoding = OBJ_ENCODING_INT; - o->ptr = (void*) value; - return o; + if (o->encoding == OBJ_ENCODING_RAW) { + sdsfree(o->ptr); + o->encoding = OBJ_ENCODING_INT; + o->ptr = (void*) value; + return o; + } else { + decrRefCount(o); + return createStringObjectFromLongLongForValue(value); + } } }