diff options
Diffstat (limited to 'hashmap.h')
-rw-r--r-- | hashmap.h | 12 |
1 files changed, 8 insertions, 4 deletions
@@ -32,12 +32,14 @@ struct hashmap_entry { unsigned int hash; }; -typedef int (*hashmap_cmp_fn)(const void *entry, const void *entry_or_key, - const void *keydata); +typedef int (*hashmap_cmp_fn)(const void *hashmap_cmp_fn_data, + const void *entry, const void *entry_or_key, + const void *keydata); struct hashmap { struct hashmap_entry **table; hashmap_cmp_fn cmpfn; + const void *cmpfn_data; unsigned int size, tablesize, grow_at, shrink_at; unsigned disallow_rehash : 1; }; @@ -50,8 +52,10 @@ struct hashmap_iter { /* hashmap functions */ -extern void hashmap_init(struct hashmap *map, hashmap_cmp_fn equals_function, - size_t initial_size); +extern void hashmap_init(struct hashmap *map, + hashmap_cmp_fn equals_function, + const void *equals_function_data, + size_t initial_size); extern void hashmap_free(struct hashmap *map, int free_entries); /* hashmap_entry functions */ |