MCPcopy Index your code
hub / github.com/benfry/processing4 / sortImpl

Method sortImpl

core/src/processing/data/LongDict.java:700–740  ·  view source on GitHub ↗
(final boolean useKeys, final boolean reverse,
                          final boolean stable)

Source from the content-addressed store, hash-verified

698
699
700 protected void sortImpl(final boolean useKeys, final boolean reverse,
701 final boolean stable) {
702 Sort s = new Sort() {
703 @Override
704 public int size() {
705 return count;
706 }
707
708 @Override
709 public int compare(int a, int b) {
710 long diff = 0;
711 if (useKeys) {
712 diff = keys[a].compareToIgnoreCase(keys[b]);
713 if (diff == 0) {
714 diff = values[a] - values[b];
715 }
716 } else { // sort values
717 diff = values[a] - values[b];
718 if (diff == 0 && stable) {
719 diff = keys[a].compareToIgnoreCase(keys[b]);
720 }
721 }
722 if (diff == 0) {
723 return 0;
724 } else if (reverse) {
725 return diff < 0 ? 1 : -1;
726 } else {
727 return diff < 0 ? -1 : 1;
728 }
729 }
730
731 @Override
732 public void swap(int a, int b) {
733 LongDict.this.swap(a, b);
734 }
735 };
736 s.run();
737
738 // Set the indices after sort/swaps (performance fix 160411)
739 resetIndices();
740 }
741
742
743 /**

Callers 4

sortKeysMethod · 0.95
sortKeysReverseMethod · 0.95
sortValuesMethod · 0.95
sortValuesReverseMethod · 0.95

Calls 2

runMethod · 0.95
resetIndicesMethod · 0.95

Tested by

no test coverage detected