]> git.ipfire.org Git - thirdparty/git.git/blobdiff - attr.c
hashmap_cmp_fn takes hashmap_entry params
[thirdparty/git.git] / attr.c
diff --git a/attr.c b/attr.c
index 93dc16b59cd6eff1d5c962ac2c4b01662948a93e..60534816105f0ad301e7209e8c0d3dec80b729ab 100644 (file)
--- a/attr.c
+++ b/attr.c
@@ -70,12 +70,14 @@ struct attr_hash_entry {
 
 /* attr_hashmap comparison function */
 static int attr_hash_entry_cmp(const void *unused_cmp_data,
-                              const void *entry,
-                              const void *entry_or_key,
+                              const struct hashmap_entry *eptr,
+                              const struct hashmap_entry *entry_or_key,
                               const void *unused_keydata)
 {
-       const struct attr_hash_entry *a = entry;
-       const struct attr_hash_entry *b = entry_or_key;
+       const struct attr_hash_entry *a, *b;
+
+       a = container_of(eptr, const struct attr_hash_entry, ent);
+       b = container_of(entry_or_key, const struct attr_hash_entry, ent);
        return (a->keylen != b->keylen) || strncmp(a->key, b->key, a->keylen);
 }
 
@@ -98,10 +100,10 @@ static void *attr_hashmap_get(struct attr_hashmap *map,
        if (!map->map.tablesize)
                attr_hashmap_init(map);
 
-       hashmap_entry_init(&k, memhash(key, keylen));
+       hashmap_entry_init(&k.ent, memhash(key, keylen));
        k.key = key;
        k.keylen = keylen;
-       e = hashmap_get(&map->map, &k, NULL);
+       e = hashmap_get_entry(&map->map, &k, NULL, struct attr_hash_entry, ent);
 
        return e ? e->value : NULL;
 }
@@ -117,12 +119,12 @@ static void attr_hashmap_add(struct attr_hashmap *map,
                attr_hashmap_init(map);
 
        e = xmalloc(sizeof(struct attr_hash_entry));
-       hashmap_entry_init(e, memhash(key, keylen));
+       hashmap_entry_init(&e->ent, memhash(key, keylen));
        e->key = key;
        e->keylen = keylen;
        e->value = value;
 
-       hashmap_add(&map->map, e);
+       hashmap_add(&map->map, &e->ent);
 }
 
 struct all_attrs_item {