mirror of
https://github.com/Mathewnd/Astral.git
synced 2026-11-01 23:18:21 +00:00
hashtable: keep track of entry count
This commit is contained in:
@@ -15,6 +15,7 @@ typedef struct hashentry_t {
|
|||||||
} hashentry_t;
|
} hashentry_t;
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
|
size_t entrycount;
|
||||||
size_t capacity;
|
size_t capacity;
|
||||||
hashentry_t **entries;
|
hashentry_t **entries;
|
||||||
} hashtable_t;
|
} hashtable_t;
|
||||||
|
|||||||
@@ -63,6 +63,7 @@ int hashtable_set(hashtable_t *table, void *value, void *key, size_t keysize, bo
|
|||||||
entry->keysize = keysize;
|
entry->keysize = keysize;
|
||||||
entry->hash = hash;
|
entry->hash = hash;
|
||||||
table->entries[tableoffset] = entry;
|
table->entries[tableoffset] = entry;
|
||||||
|
++table->entrycount;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -97,6 +98,7 @@ int hashtable_remove(hashtable_t *table, void *key, size_t keysize) {
|
|||||||
|
|
||||||
free(entry->key);
|
free(entry->key);
|
||||||
slab_free(hashentrycache, entry);
|
slab_free(hashentrycache, entry);
|
||||||
|
--table->entrycount;
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user