summaryrefslogtreecommitdiff
path: root/revision.c
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2023-10-13 21:18:28 (GMT)
committerJunio C Hamano <gitster@pobox.com>2023-10-13 21:18:28 (GMT)
commit2920971a7fd345eeaa72feae554030850e06aeec (patch)
treeea429ebcbf796b66ef0524a8723db66be7ca772c /revision.c
parent09dcbb486d964b59222136dd1668023098658eda (diff)
parentbadf2fe1c31f939cac5ea229bba8de273af132d9 (diff)
downloadgit-2920971a7fd345eeaa72feae554030850e06aeec.zip
git-2920971a7fd345eeaa72feae554030850e06aeec.tar.gz
git-2920971a7fd345eeaa72feae554030850e06aeec.tar.bz2
Merge branch 'jk/decoration-and-other-leak-fixes'
Leakfix. * jk/decoration-and-other-leak-fixes: daemon: free listen_addr before returning revision: clear decoration structs during release_revisions() decorate: add clear_decoration() function
Diffstat (limited to 'revision.c')
-rw-r--r--revision.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/revision.c b/revision.c
index e789834..219dc76 100644
--- a/revision.c
+++ b/revision.c
@@ -3083,6 +3083,11 @@ static void release_revisions_mailmap(struct string_list *mailmap)
static void release_revisions_topo_walk_info(struct topo_walk_info *info);
+static void free_void_commit_list(void *list)
+{
+ free_commit_list(list);
+}
+
void release_revisions(struct rev_info *revs)
{
free_commit_list(revs->commits);
@@ -3100,6 +3105,10 @@ void release_revisions(struct rev_info *revs)
diff_free(&revs->pruning);
reflog_walk_info_release(revs->reflog_info);
release_revisions_topo_walk_info(revs->topo_walk_info);
+ clear_decoration(&revs->children, free_void_commit_list);
+ clear_decoration(&revs->merge_simplification, free);
+ clear_decoration(&revs->treesame, free);
+ line_log_free(revs);
}
static void add_child(struct rev_info *revs, struct commit *parent, struct commit *child)