mirror of
https://codeberg.org/redict/redict.git
synced 2025-01-22 16:18:28 -05:00
Use stack for decoding integer-encoded values in list push
Less heap allocations when commands like LMOVE push integer values.
This commit is contained in:
parent
f521498b43
commit
683e530cf3
11
src/t_list.c
11
src/t_list.c
@ -41,10 +41,13 @@
|
||||
void listTypePush(robj *subject, robj *value, int where) {
|
||||
if (subject->encoding == OBJ_ENCODING_QUICKLIST) {
|
||||
int pos = (where == LIST_HEAD) ? QUICKLIST_HEAD : QUICKLIST_TAIL;
|
||||
value = getDecodedObject(value);
|
||||
size_t len = sdslen(value->ptr);
|
||||
quicklistPush(subject->ptr, value->ptr, len, pos);
|
||||
decrRefCount(value);
|
||||
if (value->encoding == OBJ_ENCODING_INT) {
|
||||
char buf[32];
|
||||
ll2string(buf, 32, (long)value->ptr);
|
||||
quicklistPush(subject->ptr, buf, strlen(buf), pos);
|
||||
} else {
|
||||
quicklistPush(subject->ptr, value->ptr, sdslen(value->ptr), pos);
|
||||
}
|
||||
} else {
|
||||
serverPanic("Unknown list encoding");
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user