}
void hashmap_free_free(Hashmap *h) {
- void *p;
-
- while ((p = hashmap_steal_first(h)))
- free(p);
+ if (!h)
+ return;
+ hashmap_clear_free(h);
hashmap_free(h);
}
remove_entry(h, h->iterate_list_head);
}
+void hashmap_clear_free(Hashmap *h) {
+ void *p;
+
+ if (!h)
+ return;
+
+ while ((p = hashmap_steal_first(h)))
+ free(p);
+}
+
static struct hashmap_entry *hash_scan(Hashmap *h, unsigned hash, const void *key) {
struct hashmap_entry *e;
assert(h);