path: root/builtin/describe.c
diff options
authorKarsten Blees <>2014-07-02 22:22:11 (GMT)
committerJunio C Hamano <>2014-07-07 20:56:35 (GMT)
commitab73a9d119240b0b908ccb9edd19b8e536ce29b9 (patch)
treed942c8d2777fa05d082819c998d64c7434ccec42 /builtin/describe.c
parentaa420c48eaea5c89946b8753363d09955300133f (diff)
hashmap: add simplified hashmap_get_from_hash() API
Hashmap entries are typically looked up by just a key. The hashmap_get() API expects an initialized entry structure instead, to support compound keys. This flexibility is currently only needed by find_dir_entry() in name-hash.c (and compat/win32/fscache.c in the msysgit fork). All other (currently five) call sites of hashmap_get() have to set up a near emtpy entry structure, resulting in duplicate code like this: struct hashmap_entry keyentry; hashmap_entry_init(&keyentry, hash(key)); return hashmap_get(map, &keyentry, key); Add a hashmap_get_from_hash() API that allows hashmap lookups by just specifying the key and its hash code, i.e.: return hashmap_get_from_hash(map, hash(key), key); Signed-off-by: Karsten Blees <> Signed-off-by: Junio C Hamano <>
Diffstat (limited to 'builtin/describe.c')
1 files changed, 1 insertions, 3 deletions
diff --git a/builtin/describe.c b/builtin/describe.c
index 57e84c8..ee6a3b9 100644
--- a/builtin/describe.c
+++ b/builtin/describe.c
@@ -58,9 +58,7 @@ static int commit_name_cmp(const struct commit_name *cn1,
static inline struct commit_name *find_commit_name(const unsigned char *peeled)
- struct commit_name key;
- hashmap_entry_init(&key, sha1hash(peeled));
- return hashmap_get(&names, &key, peeled);
+ return hashmap_get_from_hash(&names, sha1hash(peeled), peeled);
static int replace_name(struct commit_name *e,