in src/main/java/org/apache/datasketches/memory/internal/ResourceImpl.java [172:187]
static int compare(
final MemorySegment seg1, final long offsetBytes1, final long lengthBytes1,
final MemorySegment seg2, final long offsetBytes2, final long lengthBytes2) {
final long seg1EndOff = offsetBytes1 + lengthBytes1;
final long seg2EndOff = offsetBytes2 + lengthBytes2;
final long mm = MemorySegment.mismatch(seg1, offsetBytes1, seg1EndOff, seg2, offsetBytes2, seg2EndOff);
if (mm == -1) {
return (lengthBytes2 > lengthBytes1) ? -1 : (lengthBytes2 == lengthBytes1) ? 0 : 1;
}
if (mm < Math.min(lengthBytes1, lengthBytes2)) {
final int c1 = seg1.get(ValueLayout.JAVA_BYTE, offsetBytes1 + mm) & 0XFF;
final int c2 = seg2.get(ValueLayout.JAVA_BYTE, offsetBytes2 + mm) & 0XFF;
return Integer.compare(c1, c2);
}
return (lengthBytes1 == mm) ? -1 : 1;
}