fast-export: use a flex array to store anonymized entries
Now that we're using a separate keydata struct for hash lookups, we have more flexibility in how we allocate anonymized_entry structs. Let's push the "orig" key into a flex member within the struct. That should save us a few bytes of memory per entry (a pointer plus any malloc overhead), and may make lookups a little faster (since it's one less pointer to chase in the comparison function). Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
a0f65641df
commit
55b01456a9
@ -120,8 +120,8 @@ static int has_unshown_parent(struct commit *commit)
|
|||||||
|
|
||||||
struct anonymized_entry {
|
struct anonymized_entry {
|
||||||
struct hashmap_entry hash;
|
struct hashmap_entry hash;
|
||||||
const char *orig;
|
|
||||||
const char *anon;
|
const char *anon;
|
||||||
|
const char orig[FLEX_ARRAY];
|
||||||
};
|
};
|
||||||
|
|
||||||
struct anonymized_entry_key {
|
struct anonymized_entry_key {
|
||||||
@ -170,9 +170,8 @@ static const char *anonymize_str(struct hashmap *map,
|
|||||||
ret = hashmap_get_entry(map, &key, hash, &key);
|
ret = hashmap_get_entry(map, &key, hash, &key);
|
||||||
|
|
||||||
if (!ret) {
|
if (!ret) {
|
||||||
ret = xmalloc(sizeof(*ret));
|
FLEX_ALLOC_MEM(ret, orig, orig, len);
|
||||||
hashmap_entry_init(&ret->hash, key.hash.hash);
|
hashmap_entry_init(&ret->hash, key.hash.hash);
|
||||||
ret->orig = xmemdupz(orig, len);
|
|
||||||
ret->anon = generate(orig, len);
|
ret->anon = generate(orig, len);
|
||||||
hashmap_put(map, &ret->hash);
|
hashmap_put(map, &ret->hash);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user