internal void Next(Sink sink) { int c = 0; if (_valuesFromA != null && _valuesFromB != null) { checkArgument(_valuesFromA.Length == _valuesFromB.Length, "Expected index and txState values to have same dimensions, but got %d values from index and %d from txState", _valuesFromB.Length, _valuesFromA.Length); for (int i = 0; c == 0 && i < _valuesFromA.Length; i++) { c = Values.COMPARATOR.Compare(_valuesFromA[i], _valuesFromB[i]); } } if (_nextFromB == -1 || Integer.signum(c) == _indexOrder) { sink.AcceptSortedMergeJoin(_nextFromA, _valuesFromA); _nextFromA = -1; _valuesFromA = null; } else { sink.AcceptSortedMergeJoin(_nextFromB, _valuesFromB); _nextFromB = -1; _valuesFromB = null; } }