struct test_entry
{
+ int padding; /* hashmap entry no longer needs to be the first member */
struct hashmap_entry ent;
/* key and value as two \0-terminated strings */
char key[FLEX_ARRAY];
hashmap_add(&map, &entries[i]->ent);
}
- hashmap_free(&map, 0);
+ hashmap_free(&map);
}
} else {
/* test map lookups */
}
}
- hashmap_free(&map, 0);
+ hashmap_free(&map);
}
}
entry = alloc_test_entry(hash, p1, p2);
/* add / replace entry */
- entry = hashmap_put_entry(&map, entry,
- struct test_entry,
- ent /* member name */);
+ entry = hashmap_put_entry(&map, entry, ent);
/* print and free replaced entry, if any */
puts(entry ? get_value(entry) : "NULL");
/* print result */
if (!entry)
puts("NULL");
- hashmap_for_each_entry_from(&map, entry,
- struct test_entry, ent) {
+ hashmap_for_each_entry_from(&map, entry, ent)
puts(get_value(entry));
- }
} else if (!strcmp("remove", cmd) && p1) {
struct hashmap_iter iter;
hashmap_for_each_entry(&map, &iter, entry,
- struct test_entry,
ent /* member name */)
printf("%s %s\n", entry->key, get_value(entry));
}
strbuf_release(&line);
- hashmap_free(&map, 1);
+ hashmap_free_entries(&map, struct test_entry, ent);
return 0;
}