diff --git a/src/main/java/org/lmdbjava/ByteArrayProxy.java b/src/main/java/org/lmdbjava/ByteArrayProxy.java index 4afa20ae..c87b4d56 100644 --- a/src/main/java/org/lmdbjava/ByteArrayProxy.java +++ b/src/main/java/org/lmdbjava/ByteArrayProxy.java @@ -45,34 +45,6 @@ public final class ByteArrayProxy extends BufferProxy { private ByteArrayProxy() { } - /** - * Lexicographically compare two byte arrays. - * - * @param o1 left operand (required) - * @param o2 right operand (required) - * @return as specified by {@link Comparable} interface - */ - @SuppressWarnings("PMD.CompareObjectsWithEquals") - public static int compareArrays(final byte[] o1, final byte[] o2) { - requireNonNull(o1); - requireNonNull(o2); - if (o1 == o2) { - return 0; - } - final int minLength = Math.min(o1.length, o2.length); - - for (int i = 0; i < minLength; i++) { - final int lw = Byte.toUnsignedInt(o1[i]); - final int rw = Byte.toUnsignedInt(o2[i]); - final int result = Integer.compareUnsigned(lw, rw); - if (result != 0) { - return result; - } - } - - return o1.length - o2.length; - } - @Override protected byte[] allocate() { return new byte[0]; @@ -80,7 +52,7 @@ protected byte[] allocate() { @Override protected int compare(final byte[] o1, final byte[] o2) { - return compareArrays(o1, o2); + return Arrays.compare(o1, o2); } @Override diff --git a/src/main/java/org/lmdbjava/ByteBufferProxy.java b/src/main/java/org/lmdbjava/ByteBufferProxy.java index 1292e2bd..a105b972 100644 --- a/src/main/java/org/lmdbjava/ByteBufferProxy.java +++ b/src/main/java/org/lmdbjava/ByteBufferProxy.java @@ -115,46 +115,6 @@ abstract static class AbstractByteBufferProxy extends BufferProxy { private static final ThreadLocal> BUFFERS = withInitial(() -> new ArrayDeque<>(16)); - /** - * Lexicographically compare two buffers. - * - * @param o1 left operand (required) - * @param o2 right operand (required) - * @return as specified by {@link Comparable} interface - */ - @SuppressWarnings("PMD.CyclomaticComplexity") - public static int compareBuff(final ByteBuffer o1, final ByteBuffer o2) { - requireNonNull(o1); - requireNonNull(o2); - if (o1.equals(o2)) { - return 0; - } - final int minLength = Math.min(o1.limit(), o2.limit()); - final int minWords = minLength / Long.BYTES; - - final boolean reverse1 = o1.order() == LITTLE_ENDIAN; - final boolean reverse2 = o2.order() == LITTLE_ENDIAN; - for (int i = 0; i < minWords * Long.BYTES; i += Long.BYTES) { - final long lw = reverse1 ? reverseBytes(o1.getLong(i)) : o1.getLong(i); - final long rw = reverse2 ? reverseBytes(o2.getLong(i)) : o2.getLong(i); - final int diff = Long.compareUnsigned(lw, rw); - if (diff != 0) { - return diff; - } - } - - for (int i = minWords * Long.BYTES; i < minLength; i++) { - final int lw = Byte.toUnsignedInt(o1.get(i)); - final int rw = Byte.toUnsignedInt(o2.get(i)); - final int result = Integer.compareUnsigned(lw, rw); - if (result != 0) { - return result; - } - } - - return o1.remaining() - o2.remaining(); - } - static Field findField(final Class c, final String name) { Class clazz = c; do { @@ -190,7 +150,7 @@ protected final ByteBuffer allocate() { @Override protected final int compare(final ByteBuffer o1, final ByteBuffer o2) { - return compareBuff(o1, o2); + return o1.compareTo(o2); } @Override