diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/diff/PatienceDiffIndex.java b/org.eclipse.jgit/src/org/eclipse/jgit/diff/PatienceDiffIndex.java index 27cf9252e..042abd2d7 100644 --- a/org.eclipse.jgit/src/org/eclipse/jgit/diff/PatienceDiffIndex.java +++ b/org.eclipse.jgit/src/org/eclipse/jgit/diff/PatienceDiffIndex.java @@ -244,7 +244,7 @@ private void insertB(final int tIdx, int ptr) { private void scanA() { int ptr = region.beginA; final int end = region.endA; - int pLast = pBegin - 1; + int pLast = pBegin; SCAN: while (ptr < end) { final int tIdx = hash(a, ptr); @@ -276,12 +276,7 @@ private void scanA() { // fact that pCommon is sorted by B, and its likely that // matches in A appear in the same order as they do in B. // - for (int pIdx = pLast + 1;; pIdx++) { - if (pIdx == pEnd) - pIdx = pBegin; - else if (pIdx == pLast) - break; - + for (int pIdx = pLast;;) { final long priorRec = pCommon[pIdx]; final int priorB = bOf(priorRec); if (bs < priorB) @@ -291,6 +286,12 @@ else if (pIdx == pLast) pLast = pIdx; continue SCAN; } + + pIdx++; + if (pIdx == pEnd) + pIdx = pBegin; + if (pIdx == pLast) + break; } }