Make clear_commit_marks() clean harder
authorRene Scharfe <rene.scharfe@lsrfire.ath.cx>
Sat, 1 Jul 2006 23:29:58 +0000 (01:29 +0200)
committerJunio C Hamano <junkio@cox.net>
Sun, 2 Jul 2006 01:14:03 +0000 (18:14 -0700)
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 <rene.scharfe@lsrfire.ath.cx>
Signed-off-by: Junio C Hamano <junkio@cox.net>
commit.c

index 593414df36a593c892d0d35d7204860f887c7fff..70a4effe5b28d49a0228ec182f0d89b356537924 100644 (file)
--- a/commit.c
+++ b/commit.c
@@ -397,13 +397,12 @@ void clear_commit_marks(struct commit *commit, unsigned int mark)
 {
        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;
        }
 }