From: Rene Scharfe Date: Sat, 01 Jul 2006 23:29:58 GMT Subject: [PATCH 3/3] Make clear_commit_marks() clean harder Message-ID: <20060701232958.GC2513@lsrfire.ath.cx> In-Reply-To: <7vpsgpccak.fsf@assigned-by-dhcp.cox.net> Don't care if objects have been parsed or not and don't stop when we reach a commit that is already clean -- its parents could be dirty. Signed-off-by: Rene Scharfe --- commit.c | 7 +++---- 1 files changed, 3 insertions(+), 4 deletions(-) diff --git a/commit.c b/commit.c index 593414d..70a4eff 100644 --- a/commit.c +++ b/commit.c @@ -397,13 +397,12 @@ void clear_commit_marks(struct commit *c { struct commit_list *parents; + if (!commit) + return; parents = commit->parents; commit->object.flags &= ~mark; while (parents) { - struct commit *parent = parents->item; - if (parent && parent->object.parsed && - (parent->object.flags & mark)) - clear_commit_marks(parent, mark); + clear_commit_marks(parents->item, mark); parents = parents->next; } } -- 1.4.1.rc2.gfc04