private void updatePairs(ByteList value, Encoding encoding, Pair[] pairs) { Arrays.sort(pairs); int length = pairs.length; byte[] bytes = value.getUnsafeBytes(); int p = value.getBegin(); int s = p; int c = 0; for (int i = 0; i < length; i++) { int q = s + pairs[i].bytePos; c += StringSupport.strLength(encoding, bytes, p, q); pairs[i].charPos = c; p = q; } Pair key = new Pair(); key.bytePos = begin; charOffsets.beg[0] = pairs[Arrays.binarySearch(pairs, key)].charPos; key.bytePos = end; charOffsets.end[0] = pairs[Arrays.binarySearch(pairs, key)].charPos; }