diff options
author | Chris Aniszczyk | 2011-02-01 14:38:30 +0000 |
---|---|---|
committer | Code Review | 2011-02-01 14:38:30 +0000 |
commit | c1de63262eebe7e3a2d085db830b98d7dff3bd24 (patch) | |
tree | 1e088b281997060e2aaaa2d6f2e327bfdfc832c7 | |
parent | cefd59f98bfe90c0000ec6a2e515f8d536907abc (diff) | |
parent | c2ab3421a25d8f218951e6c3186037cb0b4e3a34 (diff) | |
download | jgit-c1de63262eebe7e3a2d085db830b98d7dff3bd24.tar.gz jgit-c1de63262eebe7e3a2d085db830b98d7dff3bd24.tar.xz jgit-c1de63262eebe7e3a2d085db830b98d7dff3bd24.zip |
Merge "ObjectWalk: Fix reset for non-commit objects"
-rw-r--r-- | org.eclipse.jgit/src/org/eclipse/jgit/revwalk/ObjectWalk.java | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/revwalk/ObjectWalk.java b/org.eclipse.jgit/src/org/eclipse/jgit/revwalk/ObjectWalk.java index 3df5a468f6..aeba3160dc 100644 --- a/org.eclipse.jgit/src/org/eclipse/jgit/revwalk/ObjectWalk.java +++ b/org.eclipse.jgit/src/org/eclipse/jgit/revwalk/ObjectWalk.java @@ -45,6 +45,8 @@ package org.eclipse.jgit.revwalk; import java.io.IOException; import java.text.MessageFormat; +import java.util.ArrayList; +import java.util.List; import org.eclipse.jgit.JGitText; import org.eclipse.jgit.errors.CorruptObjectException; @@ -85,6 +87,8 @@ public class ObjectWalk extends RevWalk { private CanonicalTreeParser treeWalk; + private List<RevObject> rootObjects; + private BlockObjQueue pendingObjects; private RevTree currentTree; @@ -115,6 +119,7 @@ public class ObjectWalk extends RevWalk { */ public ObjectWalk(ObjectReader or) { super(or); + rootObjects = new ArrayList<RevObject>(); pendingObjects = new BlockObjQueue(); treeWalk = new CanonicalTreeParser(); } @@ -425,6 +430,11 @@ public class ObjectWalk extends RevWalk { @Override protected void reset(final int retainFlags) { super.reset(retainFlags); + + for (RevObject obj : rootObjects) + obj.flags &= ~IN_PENDING; + + rootObjects = new ArrayList<RevObject>(); pendingObjects = new BlockObjQueue(); treeWalk = new CanonicalTreeParser(); currentTree = null; @@ -436,6 +446,7 @@ public class ObjectWalk extends RevWalk { private void addObject(final RevObject o) { if ((o.flags & IN_PENDING) == 0) { o.flags |= IN_PENDING; + rootObjects.add(o); pendingObjects.add(o); } } |