commit: avoid allocation in clear_commit_marks_many()

Pass the entries of the commit array directly to clear_commit_marks_1() instead of adding them to a commit_list first. The function clears the commit and any first parent without allocation; only higher numbered parents are added to a list for later treatment. This change extends that optimization to clear_commit_marks_many(). Signed-off-by: Rene Scharfe <l.s.r@web.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>

René Scharfe committed Dec 25, 2017 at 18:43 UTC 07f7d55a346f0eb73a358736ce065f8c08b46452
1 file changed +1 -1
commit.c
+1 -1
@@ -547,7 +547,7 @@ void clear_commit_marks_many(int nr, struct commit **commit, unsigned int mark)
547 struct commit_list *list = NULL;
548
549 while (nr--) {
550 - commit_list_insert(*commit, &list);
550 + clear_commit_marks_1(&list, *commit, mark);
551 commit++;
552 }
553 while (list)