aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2025-05-08 12:36:31 -0700
committerJunio C Hamano <gitster@pobox.com>2025-05-08 12:36:31 -0700
commit4a4656d0832ba14b2a41e5feba70fb388216f4f8 (patch)
tree7de431a5a5c9ecf1189b3bf5f142e1e346935be7
parentThe eleventh batch (diff)
parenthashmap: ensure hashmaps are reusable after hashmap_clear() (diff)
downloadgit-4a4656d0832ba14b2a41e5feba70fb388216f4f8.tar.gz
git-4a4656d0832ba14b2a41e5feba70fb388216f4f8.zip
Merge branch 'en/hashmap-clear-fix'
hashmap API clean-up to ensure hashmap_clear() leaves a cleared map in a reusable state. * en/hashmap-clear-fix: hashmap: ensure hashmaps are reusable after hashmap_clear()
-rw-r--r--hashmap.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/hashmap.c b/hashmap.c
index ee45ef0085..a711377853 100644
--- a/hashmap.c
+++ b/hashmap.c
@@ -205,8 +205,9 @@ void hashmap_clear_(struct hashmap *map, ssize_t entry_offset)
return;
if (entry_offset >= 0) /* called by hashmap_clear_and_free */
free_individual_entries(map, entry_offset);
- free(map->table);
- memset(map, 0, sizeof(*map));
+ FREE_AND_NULL(map->table);
+ map->tablesize = 0;
+ map->private_size = 0;
}
struct hashmap_entry *hashmap_get(const struct hashmap *map,