Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChris Aniszczyk2011-02-01 14:38:30 +0000
committerCode Review2011-02-01 14:38:30 +0000
commitc1de63262eebe7e3a2d085db830b98d7dff3bd24 (patch)
tree1e088b281997060e2aaaa2d6f2e327bfdfc832c7
parentcefd59f98bfe90c0000ec6a2e515f8d536907abc (diff)
parentc2ab3421a25d8f218951e6c3186037cb0b4e3a34 (diff)
downloadjgit-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.java11
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);
}
}

Back to the top