Re: [PATCH v2 18/27] revisions API: have release_revisions() release "cmdline"
From: Junio C Hamano <hidden>
Date: 2022-03-25 01:16:46
Ævar Arnfjörð Bjarmason [off-list ref] writes:
in-flight semantic conflicts. 1. https://lore.kernel.org/git/YUj%2FgFRh6pwrZalY@carlos-mbp.lan/ (local) 2. https://lore.kernel.org/git/87o88obkb1.fsf@evledraar.gmail.com/ (local) Signed-off-by: Ævar Arnfjörð Bjarmason <redacted> fixup with bc0e0439040?
WTH is this line?
quoted hunk
diff --git a/revision.c b/revision.c index d9e2b171f6d..f44298299a4 100644 --- a/revision.c +++ b/revision.c@@ -2933,6 +2933,17 @@ static void release_revisions_commit_list(struct rev_info *revs) revs->commits = NULL; } +static void release_revisions_cmdline(struct rev_cmdline_info *cmdline) +{ + unsigned int i; + + if (!cmdline) + return; + for (i = 0; i < cmdline->nr; i++) + free((char *)cmdline->rev[i].name); + FREE_AND_NULL(cmdline->rev); +} + static void release_revisions_mailmap(struct string_list *mailmap) { if (!mailmap)@@ -2947,6 +2958,7 @@ void release_revisions(struct rev_info *revs) return; release_revisions_commit_list(revs); object_array_clear(&revs->pending); + release_revisions_cmdline(&revs->cmdline); release_revisions_mailmap(revs->mailmap); }
That patch is quite unexpectedly small ;-) When I created cmdline, I recall liberally stuffing borrowed strings in the array, sort-of knowinly making it unnecessarily hard to "free". Quite pleasing.