hashmap_put takes "struct hashmap_entry *"
This is less error-prone than "void *" as the compiler now detects invalid types being passed. Signed-off-by: Eric Wong <e@80x24.org> Reviewed-by: Derrick Stolee <stolee@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>maint
parent
28ee794128
commit
26b455f21e
|
@ -160,7 +160,7 @@ static const void *anonymize_mem(struct hashmap *map,
|
||||||
ret->orig_len = *len;
|
ret->orig_len = *len;
|
||||||
ret->anon = generate(orig, len);
|
ret->anon = generate(orig, len);
|
||||||
ret->anon_len = *len;
|
ret->anon_len = *len;
|
||||||
hashmap_put(map, ret);
|
hashmap_put(map, &ret->hash);
|
||||||
}
|
}
|
||||||
|
|
||||||
*len = ret->anon_len;
|
*len = ret->anon_len;
|
||||||
|
|
|
@ -241,7 +241,7 @@ void *hashmap_remove(struct hashmap *map, const struct hashmap_entry *key,
|
||||||
return old;
|
return old;
|
||||||
}
|
}
|
||||||
|
|
||||||
void *hashmap_put(struct hashmap *map, void *entry)
|
void *hashmap_put(struct hashmap *map, struct hashmap_entry *entry)
|
||||||
{
|
{
|
||||||
struct hashmap_entry *old = hashmap_remove(map, entry, NULL);
|
struct hashmap_entry *old = hashmap_remove(map, entry, NULL);
|
||||||
hashmap_add(map, entry);
|
hashmap_add(map, entry);
|
||||||
|
|
|
@ -340,7 +340,7 @@ void hashmap_add(struct hashmap *map, struct hashmap_entry *entry);
|
||||||
* `entry` is the entry to add or replace.
|
* `entry` is the entry to add or replace.
|
||||||
* Returns the replaced entry, or NULL if not found (i.e. the entry was added).
|
* Returns the replaced entry, or NULL if not found (i.e. the entry was added).
|
||||||
*/
|
*/
|
||||||
void *hashmap_put(struct hashmap *map, void *entry);
|
void *hashmap_put(struct hashmap *map, struct hashmap_entry *entry);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Removes a hashmap entry matching the specified key. If the hashmap contains
|
* Removes a hashmap entry matching the specified key. If the hashmap contains
|
||||||
|
|
|
@ -2229,7 +2229,7 @@ static struct hashmap *get_directory_renames(struct diff_queue_struct *pairs)
|
||||||
if (!entry) {
|
if (!entry) {
|
||||||
entry = xmalloc(sizeof(*entry));
|
entry = xmalloc(sizeof(*entry));
|
||||||
dir_rename_entry_init(entry, old_dir);
|
dir_rename_entry_init(entry, old_dir);
|
||||||
hashmap_put(dir_renames, entry);
|
hashmap_put(dir_renames, &entry->ent);
|
||||||
} else {
|
} else {
|
||||||
free(old_dir);
|
free(old_dir);
|
||||||
}
|
}
|
||||||
|
@ -2360,7 +2360,7 @@ static void compute_collisions(struct hashmap *collisions,
|
||||||
sizeof(struct collision_entry));
|
sizeof(struct collision_entry));
|
||||||
hashmap_entry_init(&collision_ent->ent,
|
hashmap_entry_init(&collision_ent->ent,
|
||||||
strhash(new_path));
|
strhash(new_path));
|
||||||
hashmap_put(collisions, collision_ent);
|
hashmap_put(collisions, &collision_ent->ent);
|
||||||
collision_ent->target_file = new_path;
|
collision_ent->target_file = new_path;
|
||||||
} else {
|
} else {
|
||||||
free(new_path);
|
free(new_path);
|
||||||
|
|
2
oidmap.c
2
oidmap.c
|
@ -51,5 +51,5 @@ void *oidmap_put(struct oidmap *map, void *entry)
|
||||||
oidmap_init(map, 0);
|
oidmap_init(map, 0);
|
||||||
|
|
||||||
hashmap_entry_init(&to_put->internal_entry, oidhash(&to_put->oid));
|
hashmap_entry_init(&to_put->internal_entry, oidhash(&to_put->oid));
|
||||||
return hashmap_put(&map->map, to_put);
|
return hashmap_put(&map->map, &to_put->internal_entry);
|
||||||
}
|
}
|
||||||
|
|
5
refs.c
5
refs.c
|
@ -1863,10 +1863,13 @@ static void register_ref_store_map(struct hashmap *map,
|
||||||
struct ref_store *refs,
|
struct ref_store *refs,
|
||||||
const char *name)
|
const char *name)
|
||||||
{
|
{
|
||||||
|
struct ref_store_hash_entry *entry;
|
||||||
|
|
||||||
if (!map->tablesize)
|
if (!map->tablesize)
|
||||||
hashmap_init(map, ref_store_hash_cmp, NULL, 0);
|
hashmap_init(map, ref_store_hash_cmp, NULL, 0);
|
||||||
|
|
||||||
if (hashmap_put(map, alloc_ref_store_hash_entry(name, refs)))
|
entry = alloc_ref_store_hash_entry(name, refs);
|
||||||
|
if (hashmap_put(map, &entry->ent))
|
||||||
BUG("%s ref_store '%s' initialized twice", type, name);
|
BUG("%s ref_store '%s' initialized twice", type, name);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
2
remote.c
2
remote.c
|
@ -159,7 +159,7 @@ static struct remote *make_remote(const char *name, int len)
|
||||||
remotes[remotes_nr++] = ret;
|
remotes[remotes_nr++] = ret;
|
||||||
|
|
||||||
hashmap_entry_init(&ret->ent, lookup_entry.hash);
|
hashmap_entry_init(&ret->ent, lookup_entry.hash);
|
||||||
replaced = hashmap_put(&remotes_hash, ret);
|
replaced = hashmap_put(&remotes_hash, &ret->ent);
|
||||||
assert(replaced == NULL); /* no previous entry overwritten */
|
assert(replaced == NULL); /* no previous entry overwritten */
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
|
@ -153,7 +153,7 @@ static void paths_and_oids_insert(struct hashmap *map,
|
||||||
hashmap_entry_init(&entry->ent, hash);
|
hashmap_entry_init(&entry->ent, hash);
|
||||||
entry->path = xstrdup(key.path);
|
entry->path = xstrdup(key.path);
|
||||||
oidset_init(&entry->trees, 16);
|
oidset_init(&entry->trees, 16);
|
||||||
hashmap_put(map, entry);
|
hashmap_put(map, &entry->ent);
|
||||||
}
|
}
|
||||||
|
|
||||||
oidset_insert(&entry->trees, oid);
|
oidset_insert(&entry->trees, oid);
|
||||||
|
|
|
@ -5254,7 +5254,7 @@ int todo_list_rearrange_squash(struct todo_list *todo_list)
|
||||||
entry->i = i;
|
entry->i = i;
|
||||||
hashmap_entry_init(&entry->entry,
|
hashmap_entry_init(&entry->entry,
|
||||||
strhash(entry->subject));
|
strhash(entry->subject));
|
||||||
hashmap_put(&subject2item, entry);
|
hashmap_put(&subject2item, &entry->entry);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -125,7 +125,7 @@ static void cache_put_path(struct submodule_cache *cache,
|
||||||
struct submodule_entry *e = xmalloc(sizeof(*e));
|
struct submodule_entry *e = xmalloc(sizeof(*e));
|
||||||
hashmap_entry_init(&e->ent, hash);
|
hashmap_entry_init(&e->ent, hash);
|
||||||
e->config = submodule;
|
e->config = submodule;
|
||||||
hashmap_put(&cache->for_path, e);
|
hashmap_put(&cache->for_path, &e->ent);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void cache_remove_path(struct submodule_cache *cache,
|
static void cache_remove_path(struct submodule_cache *cache,
|
||||||
|
|
|
@ -187,7 +187,7 @@ int cmd__hashmap(int argc, const char **argv)
|
||||||
entry = alloc_test_entry(hash, p1, p2);
|
entry = alloc_test_entry(hash, p1, p2);
|
||||||
|
|
||||||
/* add / replace entry */
|
/* add / replace entry */
|
||||||
entry = hashmap_put(&map, entry);
|
entry = hashmap_put(&map, &entry->ent);
|
||||||
|
|
||||||
/* print and free replaced entry, if any */
|
/* print and free replaced entry, if any */
|
||||||
puts(entry ? get_value(entry) : "NULL");
|
puts(entry ? get_value(entry) : "NULL");
|
||||||
|
|
Loading…
Reference in New Issue