Use function instead of code in dict.c and delete dead code in dict.h (#8878)

Use function instead of code in dict.c and delete dead code in dict.h
This commit is contained in:
Binbin 2021-05-09 20:21:18 +08:00 committed by GitHub
parent 57b94eacaa
commit 56976ffb49
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 4 additions and 10 deletions

View File

@ -381,7 +381,7 @@ dictEntry *dictAddOrFind(dict *d, void *key) {
return entry ? entry : existing; return entry ? entry : existing;
} }
/* Search and remove an element. This is an helper function for /* Search and remove an element. This is a helper function for
* dictDelete() and dictUnlink(), please check the top comment * dictDelete() and dictUnlink(), please check the top comment
* of those functions. */ * of those functions. */
static dictEntry *dictGenericDelete(dict *d, const void *key, int nofree) { static dictEntry *dictGenericDelete(dict *d, const void *key, int nofree) {
@ -389,7 +389,8 @@ static dictEntry *dictGenericDelete(dict *d, const void *key, int nofree) {
dictEntry *he, *prevHe; dictEntry *he, *prevHe;
int table; int table;
if (d->ht[0].used == 0 && d->ht[1].used == 0) return NULL; /* dict is empty */
if (dictSize(d) == 0) return NULL;
if (dictIsRehashing(d)) _dictRehashStep(d); if (dictIsRehashing(d)) _dictRehashStep(d);
h = dictHashKey(d, key); h = dictHashKey(d, key);
@ -406,9 +407,7 @@ static dictEntry *dictGenericDelete(dict *d, const void *key, int nofree) {
else else
d->ht[table].table[idx] = he->next; d->ht[table].table[idx] = he->next;
if (!nofree) { if (!nofree) {
dictFreeKey(d, he); dictFreeUnlinkedEntry(d, he);
dictFreeVal(d, he);
zfree(he);
} }
d->ht[table].used--; d->ht[table].used--;
return he; return he;

View File

@ -196,11 +196,6 @@ unsigned long dictScan(dict *d, unsigned long v, dictScanFunction *fn, dictScanB
uint64_t dictGetHash(dict *d, const void *key); uint64_t dictGetHash(dict *d, const void *key);
dictEntry **dictFindEntryRefByPtrAndHash(dict *d, const void *oldptr, uint64_t hash); dictEntry **dictFindEntryRefByPtrAndHash(dict *d, const void *oldptr, uint64_t hash);
/* Hash table types */
extern dictType dictTypeHeapStringCopyKey;
extern dictType dictTypeHeapStrings;
extern dictType dictTypeHeapStringCopyKeyValue;
#ifdef REDIS_TEST #ifdef REDIS_TEST
int dictTest(int argc, char *argv[], int accurate); int dictTest(int argc, char *argv[], int accurate);
#endif #endif