pseudo-merge: fix various memory leaks

Fix various memory leaks hit by the pseudo-merge machinery. These leaks
are exposed by t5333, but plugging them does not yet make the whole test
suite pass.

Signed-off-by: Patrick Steinhardt <ps@pks.im>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Patrick Steinhardt
2024-09-30 11:13:51 +02:00
committed by Junio C Hamano
parent 5ce08ed4fb
commit 55e563a90c
4 changed files with 31 additions and 2 deletions

View File

@@ -97,6 +97,25 @@ static void pseudo_merge_group_init(struct pseudo_merge_group *group)
group->stable_size = DEFAULT_PSEUDO_MERGE_STABLE_SIZE;
}
void pseudo_merge_group_release(struct pseudo_merge_group *group)
{
struct hashmap_iter iter;
struct strmap_entry *e;
regfree(group->pattern);
free(group->pattern);
strmap_for_each_entry(&group->matches, &iter, e) {
struct pseudo_merge_matches *matches = e->value;
free(matches->stable);
free(matches->unstable);
free(matches);
}
strmap_clear(&group->matches, 0);
free(group->merges);
}
static int pseudo_merge_config(const char *var, const char *value,
const struct config_context *ctx,
void *cb_data)