Merge pull request #7152 from oranagra/dict_find_static_robj
allow dictFind using static robj
This commit is contained in:
commit
94dcdaeaf0
13
src/server.c
13
src/server.c
@ -1219,11 +1219,16 @@ int dictEncObjKeyCompare(void *privdata, const void *key1,
|
|||||||
o2->encoding == OBJ_ENCODING_INT)
|
o2->encoding == OBJ_ENCODING_INT)
|
||||||
return o1->ptr == o2->ptr;
|
return o1->ptr == o2->ptr;
|
||||||
|
|
||||||
o1 = getDecodedObject(o1);
|
/* due to OBJ_STATIC_REFCOUNT, we rather not call sdsEncodedObject unnecessarily */
|
||||||
o2 = getDecodedObject(o2);
|
if (!sdsEncodedObject(o1))
|
||||||
|
o1 = getDecodedObject(o1);
|
||||||
|
if (!sdsEncodedObject(o2))
|
||||||
|
o2 = getDecodedObject(o2);
|
||||||
cmp = dictSdsKeyCompare(privdata,o1->ptr,o2->ptr);
|
cmp = dictSdsKeyCompare(privdata,o1->ptr,o2->ptr);
|
||||||
decrRefCount(o1);
|
if (o1!=key1)
|
||||||
decrRefCount(o2);
|
decrRefCount(o1);
|
||||||
|
if (o2!=key2)
|
||||||
|
decrRefCount(o2);
|
||||||
return cmp;
|
return cmp;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user