Browse Source

Micro-optimize DeltaWindow primary loop

javac and the JIT are more likely to understand a boolean being
used as a branch conditional than comparing int against 0 and 1.
Rewrite NEXT_RES and NEXT_SRC constants to be booleans so the
code is clarified for the JIT.

Change-Id: I1bdd8b587a69572975a84609c779b9ebf877b85d
stable-3.0
Shawn Pearce 12 years ago
parent
commit
1db50c9d91
  1. 15
      org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/pack/DeltaWindow.java

15
org.eclipse.jgit/src/org/eclipse/jgit/internal/storage/pack/DeltaWindow.java

@ -57,9 +57,8 @@ import org.eclipse.jgit.storage.pack.PackConfig;
import org.eclipse.jgit.util.TemporaryBuffer;
final class DeltaWindow {
private static final int NEXT_RES = 0;
private static final int NEXT_SRC = 1;
private static final boolean NEXT_RES = false;
private static final boolean NEXT_SRC = true;
private final PackConfig config;
private final DeltaCache deltaCache;
@ -236,10 +235,10 @@ final class DeltaWindow {
DeltaWindowEntry src = window[srcSlot];
if (src.empty())
break;
if (delta(src, srcSlot) == NEXT_RES) {
bestDelta = null;
return;
}
if (delta(src, srcSlot) /* == NEXT_SRC */)
continue;
bestDelta = null;
return;
}
// We couldn't find a suitable delta for this object, but it may
@ -286,7 +285,7 @@ final class DeltaWindow {
keepInWindow();
}
private int delta(final DeltaWindowEntry src, final int srcSlot)
private boolean delta(final DeltaWindowEntry src, final int srcSlot)
throws IOException {
// Objects must use only the same type as their delta base.
// If we are looking at something where that isn't true we

Loading…
Cancel
Save