[JGIT PATCH 1/2] Paper bag fix RevWalk.reset after inMergeBase is used
- From
Shawn O. Pearce <spearce@spearce.org>
- Date
- Sep 16, 2008, 19:34 UTC
- Message-ID
- <1221593677-24481-1-git-send-email-spearce@spearce.org>
We need to remove delayedFreeFlags from carryFlags anytime we mark those delayedFreeFlags as actually freeFlags. In other words we do not want to continue carrying a flag which we have now freed and will recycle for a different use in the future, one which may not want to be carried automatically onto parent commits during revision traversal.
I had the boolean expression incorrect (call it a typo). The correct way to remove set b from a is "a &= ~b" not "a &= b".
Signed-off-by: Shawn O. Pearce <spearce@spearce.org> --- .../src/org/spearce/jgit/revwalk/RevWalk.java | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/org.spearce.jgit/src/org/spearce/jgit/revwalk/RevWalk.java b/org.spearce.jgit/src/org/spearce/jgit/revwalk/RevWalk.java index 079432c..5cd7f71 100644 --- a/org.spearce.jgit/src/org/spearce/jgit/revwalk/RevWalk.java +++ b/org.spearce.jgit/src/org/spearce/jgit/revwalk/RevWalk.java @@ -824,7 +824,7 @@ void freeFlag(final int mask) { private void finishDelayedFreeFlags() { if (delayFreeFlags != 0) { freeFlags |= delayFreeFlags; - carryFlags &= delayFreeFlags; + carryFlags &= ~delayFreeFlags; delayFreeFlags = 0; } }
-- 1.6.0.2.389.g421e0