Fix missing dismiss hash listpack memory due to ziplist->listpack migration (#9353)

This commit is contained in:
sundb 2021-08-10 21:54:19 +08:00 committed by GitHub
parent 82528d2678
commit 5705cec68e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -422,6 +422,8 @@ void dismissListObject(robj *o, size_t size_hint) {
node = node->next; 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*)); dismissMemory(set->ht_table[1], DICTHT_SIZE(set->ht_size_exp[1])*sizeof(dictEntry*));
} else if (o->encoding == OBJ_ENCODING_INTSET) { } else if (o->encoding == OBJ_ENCODING_INTSET) {
dismissMemory(o->ptr, intsetBlobLen((intset*)o->ptr)); 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*)); dismissMemory(d->ht_table[1], DICTHT_SIZE(d->ht_size_exp[1])*sizeof(dictEntry*));
} else if (o->encoding == OBJ_ENCODING_ZIPLIST) { } else if (o->encoding == OBJ_ENCODING_ZIPLIST) {
dismissMemory(o->ptr, ziplistBlobLen((unsigned char*)o->ptr)); 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. */ /* Dismiss hash table memory. */
dismissMemory(d->ht_table[0], DICTHT_SIZE(d->ht_size_exp[0])*sizeof(dictEntry*)); 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*)); dismissMemory(d->ht_table[1], DICTHT_SIZE(d->ht_size_exp[1])*sizeof(dictEntry*));
} else if (o->encoding == OBJ_ENCODING_ZIPLIST) { } else if (o->encoding == OBJ_ENCODING_LISTPACK) {
dismissMemory(o->ptr, ziplistBlobLen((unsigned char*)o->ptr)); dismissMemory(o->ptr, lpBytes((unsigned char*)o->ptr));
} else {
serverPanic("Unknown hash encoding type");
} }
} }