Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.kernel.org/pub/scm/git/git.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'hashmap.h')
-rw-r--r--hashmap.h12
1 files changed, 8 insertions, 4 deletions
diff --git a/hashmap.h b/hashmap.h
index de6022a3a9..aaf09e047e 100644
--- a/hashmap.h
+++ b/hashmap.h
@@ -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 */