void () { clearLastRange(); matchForward(-1, -1); for (Range ch : myChanges.iterateUnchanged()) { int count = ch.end1 - ch.start1; for (int i = 0; i < count; i++) { int index1 = ch.start1 + i; int index2 = ch.start2 + i; int start1 = getStartOffset1(index1); int start2 = getStartOffset2(index2); int end1 = getEndOffset1(index1); int end2 = getEndOffset2(index2); matchBackward(index1, index2); myBuilder.markEqual(start1, start2, end1, end2); matchForward(index1, index2); } } matchBackward(myWords1.size(), myWords2.size()); }