Merge pull request #7152 from oranagra/dict_find_static_robj

allow dictFind using static robj
This commit is contained in:
Salvatore Sanfilippo 2020-04-27 22:36:51 +02:00 committed by GitHub
commit 94dcdaeaf0

View File

@ -1219,11 +1219,16 @@ int dictEncObjKeyCompare(void *privdata, const void *key1,
o2->encoding == OBJ_ENCODING_INT)
return o1->ptr == o2->ptr;
o1 = getDecodedObject(o1);
o2 = getDecodedObject(o2);
/* due to OBJ_STATIC_REFCOUNT, we rather not call sdsEncodedObject unnecessarily */
if (!sdsEncodedObject(o1))
o1 = getDecodedObject(o1);
if (!sdsEncodedObject(o2))
o2 = getDecodedObject(o2);
cmp = dictSdsKeyCompare(privdata,o1->ptr,o2->ptr);
decrRefCount(o1);
decrRefCount(o2);
if (o1!=key1)
decrRefCount(o1);
if (o2!=key2)
decrRefCount(o2);
return cmp;
}