private long unsafeHash(Object input, long off, long len) { return hash(input, UnsafeAccess.INSTANCE, off, len); }
private long getHash(String text) { return LongHashFunction.xx_r39().hash(text, LOWER_CASE_ACCESS_INSTANCE, 0, text.length()); }
long hashNativeChars(CharSequence input, int off, int len) { return hash(input, nativeCharSequenceAccess(), off * 2L, len * 2L); }
private long hashByteBuffer(@NotNull ByteBuffer input, int off, int len) { if (input.hasArray()) { return unsafeHash(input.array(), BYTE_BASE + input.arrayOffset() + off, len); } else if (input instanceof DirectBuffer) { return unsafeHash(null, ((DirectBuffer) input).address() + off, len); } else { return hash(input, ByteBufferAccess.INSTANCE, off, len); } }