summaryrefslogtreecommitdiff
path: root/src/object.c
diff options
context:
space:
mode:
authorsundb <sundbcn@gmail.com>2021-08-10 21:54:19 +0800
committerGitHub <noreply@github.com>2021-08-10 16:54:19 +0300
commit5705cec68e2b93ace879cc1c8d05aca19bcfd188 (patch)
treeb62236bb48c237c063a875f10c5acfd3555e6a1d /src/object.c
parent82528d26785678b7ea7aeaff4c72aee58500e8d0 (diff)
downloadredis-5705cec68e2b93ace879cc1c8d05aca19bcfd188.tar.gz
Fix missing dismiss hash listpack memory due to ziplist->listpack migration (#9353)
Diffstat (limited to 'src/object.c')
-rw-r--r--src/object.c12
1 files changed, 10 insertions, 2 deletions
diff --git a/src/object.c b/src/object.c
index 2e27d69f6..ef1430088 100644
--- a/src/object.c
+++ b/src/object.c
@@ -422,6 +422,8 @@ void dismissListObject(robj *o, size_t size_hint) {
node = node->next;
}
}
+ } else {
+ serverPanic("Unknown list encoding type");
}
}
@@ -446,6 +448,8 @@ void dismissSetObject(robj *o, size_t size_hint) {
dismissMemory(set->ht_table[1], DICTHT_SIZE(set->ht_size_exp[1])*sizeof(dictEntry*));
} else if (o->encoding == OBJ_ENCODING_INTSET) {
dismissMemory(o->ptr, intsetBlobLen((intset*)o->ptr));
+ } else {
+ serverPanic("Unknown set encoding type");
}
}
@@ -471,6 +475,8 @@ void dismissZsetObject(robj *o, size_t size_hint) {
dismissMemory(d->ht_table[1], DICTHT_SIZE(d->ht_size_exp[1])*sizeof(dictEntry*));
} else if (o->encoding == OBJ_ENCODING_ZIPLIST) {
dismissMemory(o->ptr, ziplistBlobLen((unsigned char*)o->ptr));
+ } else {
+ serverPanic("Unknown zset encoding type");
}
}
@@ -495,8 +501,10 @@ void dismissHashObject(robj *o, size_t size_hint) {
/* Dismiss hash table memory. */
dismissMemory(d->ht_table[0], DICTHT_SIZE(d->ht_size_exp[0])*sizeof(dictEntry*));
dismissMemory(d->ht_table[1], DICTHT_SIZE(d->ht_size_exp[1])*sizeof(dictEntry*));
- } else if (o->encoding == OBJ_ENCODING_ZIPLIST) {
- dismissMemory(o->ptr, ziplistBlobLen((unsigned char*)o->ptr));
+ } else if (o->encoding == OBJ_ENCODING_LISTPACK) {
+ dismissMemory(o->ptr, lpBytes((unsigned char*)o->ptr));
+ } else {
+ serverPanic("Unknown hash encoding type");
}
}