Skip to content

Commit

Permalink
Fix missing dismiss hash listpack memory due to ziplist->listpack mig…
Browse files Browse the repository at this point in the history
…ration (redis#9353)
  • Loading branch information
sundb committed Aug 10, 2021
1 parent ebe8296 commit b51fd6e
Showing 1 changed file with 10 additions and 2 deletions.
12 changes: 10 additions & 2 deletions src/object.c
Original file line number Diff line number Diff line change
Expand Up @@ -422,6 +422,8 @@ void dismissListObject(robj *o, size_t size_hint) {
node = node->next;
}
}
} else {
serverPanic("Unknown list encoding type");
}
}

Expand All @@ -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");
}
}

Expand All @@ -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");
}
}

Expand All @@ -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");
}
}

Expand Down

0 comments on commit b51fd6e

Please sign in to comment.