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:
authorJeff King <peff@peff.net>2023-03-22 20:38:04 +0300
committerJunio C Hamano <gitster@pobox.com>2023-03-23 01:37:08 +0300
commitd6484e9fab5747dd1d36fd7895e796922f4e2c76 (patch)
tree007296fa3e0be74ed6e53231eed0edc789c0cf2c /builtin/fast-export.c
parent76e50f7fbccb9db4659f1e7fea55fc4d51144d7c (diff)
fast-export: simplify initialization of anonymized hashmaps
We take pains to avoid doing a lookup on a hashmap which has not been initialized with hashmap_init(). That was necessary back when this code was written. But hashmap_get() became safer in b7879b0ba6e (hashmap: allow re-use after hashmap_free(), 2020-11-02). Since then it's OK to call functions on a zero-initialized table; it will just correctly return NULL, since there is no match. This simplifies the code a little, and also lets us keep the initialization line closer to when we add an entry (which is when the hashmap really does need to be totally initialized). That will help later refactoring. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'builtin/fast-export.c')
-rw-r--r--builtin/fast-export.c11
1 files changed, 4 insertions, 7 deletions
diff --git a/builtin/fast-export.c b/builtin/fast-export.c
index f422819c82..ba9ab3a97e 100644
--- a/builtin/fast-export.c
+++ b/builtin/fast-export.c
@@ -152,18 +152,12 @@ static const char *anonymize_str(struct hashmap *map,
struct anonymized_entry_key key;
struct anonymized_entry *ret;
- if (!map->cmpfn)
- hashmap_init(map, anonymized_entry_cmp, NULL, 0);
-
hashmap_entry_init(&key.hash, memhash(orig, len));
key.orig = orig;
key.orig_len = len;
/* First check if it's a token the user configured manually... */
- if (anonymized_seeds.cmpfn)
- ret = hashmap_get_entry(&anonymized_seeds, &key, hash, &key);
- else
- ret = NULL;
+ ret = hashmap_get_entry(&anonymized_seeds, &key, hash, &key);
/* ...otherwise check if we've already seen it in this context... */
if (!ret)
@@ -171,6 +165,9 @@ static const char *anonymize_str(struct hashmap *map,
/* ...and finally generate a new mapping if necessary */
if (!ret) {
+ if (!map->cmpfn)
+ hashmap_init(map, anonymized_entry_cmp, NULL, 0);
+
FLEX_ALLOC_MEM(ret, orig, orig, len);
hashmap_entry_init(&ret->hash, key.hash.hash);
ret->anon = generate(data);