diff options
author | Eric Anholt <eric@anholt.net> | 2009-11-24 16:46:18 -0800 |
---|---|---|
committer | Eric Anholt <eric@anholt.net> | 2009-11-24 16:47:48 -0800 |
commit | 1a26ea651b03759c8b5ba98dd8fc81aae227fbc9 (patch) | |
tree | 94b2a7129c89d0de3a1535c36ce988e679aa1cc3 | |
parent | e4c30177553e4ade97e287dd9283c7d53362937c (diff) |
Prevent ht->entries from doubling when rehashing.
-rw-r--r-- | hash_table.c | 1 | ||||
-rw-r--r-- | tests/delete_management.c | 1 | ||||
-rw-r--r-- | tests/insert_many.c | 1 |
3 files changed, 3 insertions, 0 deletions
diff --git a/hash_table.c b/hash_table.c index 4404084..af17336 100644 --- a/hash_table.c +++ b/hash_table.c @@ -205,6 +205,7 @@ hash_table_rehash(struct hash_table *ht, int new_size_index) ht->size = hash_sizes[ht->size_index].size; ht->rehash = hash_sizes[ht->size_index].rehash; ht->max_entries = hash_sizes[ht->size_index].max_entries; + ht->entries = 0; ht->deleted_entries = 0; for (entry = old_ht.table; diff --git a/tests/delete_management.c b/tests/delete_management.c index cb35cd1..6203156 100644 --- a/tests/delete_management.c +++ b/tests/delete_management.c @@ -81,6 +81,7 @@ main(int argc, char **argv) assert(key_value(entry->key) >= size - 100 && key_value(entry->key) < size); } + assert(ht->entries == 100); hash_table_destroy(ht, NULL); diff --git a/tests/insert_many.c b/tests/insert_many.c index 259818b..b46922c 100644 --- a/tests/insert_many.c +++ b/tests/insert_many.c @@ -65,6 +65,7 @@ main(int argc, char **argv) assert(entry); assert(key_value(entry->key) == i); } + assert(ht->entries == size); hash_table_destroy(ht, NULL); |