Browse Source

TopoSortGenerator: simplify first-parent handling

Change-Id: I74b40f1a2f81911c1d5ac5ae93b4a160fccf8f73
Signed-off-by: Thomas Wolf <thomas.wolf@paranor.ch>
next
Thomas Wolf 5 years ago committed by Matthias Sohn
parent
commit
cb85f7be8b
  1. 15
      org.eclipse.jgit/src/org/eclipse/jgit/revwalk/TopoSortGenerator.java

15
org.eclipse.jgit/src/org/eclipse/jgit/revwalk/TopoSortGenerator.java

@ -80,11 +80,11 @@ class TopoSortGenerator extends Generator {
if (c == null) {
break;
}
for (int i = 0; i < c.parents.length; i++) {
if (firstParent && i > 0) {
for (RevCommit p : c.parents) {
p.inDegree++;
if (firstParent) {
break;
}
c.parents[i].inDegree++;
}
pending.add(c);
}
@ -119,11 +119,7 @@ class TopoSortGenerator extends Generator {
// All of our children have already produced,
// so it is OK for us to produce now as well.
//
for (int i = 0; i < c.parents.length; i++) {
if (firstParent && i > 0) {
break;
}
RevCommit p = c.parents[i];
for (RevCommit p : c.parents) {
if (--p.inDegree == 0 && (p.flags & TOPO_DELAY) != 0) {
// This parent tried to come before us, but we are
// his last child. unpop the parent so it goes right
@ -132,6 +128,9 @@ class TopoSortGenerator extends Generator {
p.flags &= ~TOPO_DELAY;
pending.unpop(p);
}
if (firstParent) {
break;
}
}
return c;
}

Loading…
Cancel
Save