summaryrefslogtreecommitdiff
path: root/commit.c
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2025-02-27 15:23:00 -0800
committerJunio C Hamano <gitster@pobox.com>2025-02-27 15:23:00 -0800
commit16b2e579f91cddb672bc63612d516d65c8be0a7c (patch)
treeff9bbeb07e5897a1bd2813451dd59660ad8fd34f /commit.c
parentc51a0b47c91106ff50a2a9dca302e80bc7049aba (diff)
parent1ca727f230d83db20952f8ae7ce2f1749d744334 (diff)
Merge branch 'rs/clear-commit-marks-optim'
A micro-optimization. * rs/clear-commit-marks-optim: commit: avoid parent list buildup in clear_commit_marks_many()
Diffstat (limited to 'commit.c')
-rw-r--r--commit.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/commit.c b/commit.c
index 540660359d..6efdb03997 100644
--- a/commit.c
+++ b/commit.c
@@ -780,14 +780,14 @@ static void clear_commit_marks_1(struct commit_list **plist,
void clear_commit_marks_many(size_t nr, struct commit **commit, unsigned int mark)
{
- struct commit_list *list = NULL;
-
for (size_t i = 0; i < nr; i++) {
+ struct commit_list *list = NULL;
+
clear_commit_marks_1(&list, *commit, mark);
+ while (list)
+ clear_commit_marks_1(&list, pop_commit(&list), mark);
commit++;
}
- while (list)
- clear_commit_marks_1(&list, pop_commit(&list), mark);
}
void clear_commit_marks(struct commit *commit, unsigned int mark)