From 181dc776956b4d265891ac70514ed214e4b7564a Mon Sep 17 00:00:00 2001 From: Junio C Hamano Date: Sun, 15 Jan 2006 22:15:37 -0800 Subject: describe: omit clearing marks on the last one. When describing more than one, we need to clear the commit marks before handling the next one, but most of the time we are running it for only one commit, and in such a case this clearing phase is totally unnecessary. Signed-off-by: Junio C Hamano --- commit.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'commit.c') diff --git a/commit.c b/commit.c index 56efc69f1f..b8bf35e860 100644 --- a/commit.c +++ b/commit.c @@ -359,8 +359,10 @@ void clear_commit_marks(struct commit *commit, unsigned int mark) parents = commit->parents; commit->object.flags &= ~mark; while (parents) { - if (parents->item && parents->item->object.parsed) - clear_commit_marks(parents->item, mark); + struct commit *parent = parents->item; + if (parent && parent->object.parsed && + (parent->object.flags & mark)) + clear_commit_marks(parent, mark); parents = parents->next; } } -- cgit v1.2.3