Re: [PATCH 3/2] format-patch: use clear_commit_marks() instead of some adhocery
- From
Junio C Hamano <junkio@cox.net>
- Date
- Jun 26, 2006, 16:09 UTC
- Message-ID
- <7vhd27j3v8.fsf@assigned-by-dhcp.cox.net>
- In-Reply-To
- <Pine.LNX.4.63.0606261728340.29667@wbgn013.biozentrum.uni-wuerzburg.de>
Johannes Schindelin <Johannes.Schindelin@gmx.de> writes:
> It is not clean to reset the flags of all objects to 0. Instead, > the commits are walked directly. Not that it matters in that > particular case (the only read objects _are_ these commits).
I think this makes sense, but the clear-commit-marks function itself looks fishy. I suspect a parent that has not been parsed could be already marked in which case the current code would leave it marked. Don't we need this perhaps?
diff --git a/commit.c b/commit.c index 946615d..69fbc41 100644 --- a/commit.c +++ b/commit.c @@ -397,8 +397,7 @@ void clear_commit_marks(struct commit *c commit->object.flags &= ~mark; while (parents) { struct commit *parent = parents->item; - if (parent && parent->object.parsed && - (parent->object.flags & mark)) + if (parent && (parent->object.flags & mark)) clear_commit_marks(parent, mark); parents = parents->next; }