# HG changeset patch # User Artem Tikhomirov # Date 1316863533 -7200 # Node ID 237de162be287365a4ff7c6418f7e76e8e2e28cf # Parent 962f78aac342293589e75fd830138228dd8619af Fix building sort reverse array when element was initially in correct position. diff -r 962f78aac342 -r 237de162be28 src/org/tmatesoft/hg/internal/ArrayHelper.java --- a/src/org/tmatesoft/hg/internal/ArrayHelper.java Sat Sep 24 13:02:48 2011 +0200 +++ b/src/org/tmatesoft/hg/internal/ArrayHelper.java Sat Sep 24 13:25:33 2011 +0200 @@ -29,6 +29,14 @@ // Object[] aux = (Object[]) a.clone(); reverse = new int[a.length]; sort1((Comparable[])a, 0, a.length); + for (int i = 0; i < reverse.length; i++) { + // element that was not moved don't have an index in reverse. + // perhaps, can do it inside sort alg? + // TODO tests! + if (reverse[i] == 0) { + reverse[i] = i+1; + } + } } private void sort1(Comparable x[], int off, int len) {