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

@ -64,6 +64,12 @@ static void free_pseudo_merge_commit_idx(struct pseudo_merge_commit_idx *idx)
free(idx);
}
static void pseudo_merge_group_release_cb(void *payload, const char *name UNUSED)
{
pseudo_merge_group_release(payload);
free(payload);
}
void bitmap_writer_free(struct bitmap_writer *writer)
{
uint32_t i;
@ -82,6 +88,8 @@ void bitmap_writer_free(struct bitmap_writer *writer)
kh_foreach_value(writer->pseudo_merge_commits, idx,
free_pseudo_merge_commit_idx(idx));
kh_destroy_oid_map(writer->pseudo_merge_commits);
string_list_clear_func(&writer->pseudo_merge_groups,
pseudo_merge_group_release_cb);
for (i = 0; i < writer->selected_nr; i++) {
struct bitmapped_commit *bc = &writer->selected[i];