RFR: 8311864: Add ArraysSupport.hashCode(int[] a, fromIndex, length, initialValue)
Pavel Rappo
prappo at openjdk.org
Tue Jul 11 16:43:26 UTC 2023
This PR adds an internal method to calculate hash code from the provided integer array, offset and length into that array, and the initial hash code value.
Current options for calculating a hash code for int[] are inflexible. It's either ArraysSupport.vectorizedHashCode with an offset, length and initial value, or Arrays.hashCode with just an array.
For an arbitrary int[], unconditional vectorization might be unwarranted or puzzling. Unfortunately, it's the only hash code method that operates on an array subrange or accepts the initial hash code value.
A more convenient method could be added and then used, for example, here:
* https://github.com/openjdk/jdk/blob/0ef03f122866f010ebf50683097e9b92e41cdaad/src/java.base/share/classes/java/util/concurrent/CopyOnWriteArrayList.java#L1076-L1083
* https://github.com/openjdk/jdk/blob/0ef03f122866f010ebf50683097e9b92e41cdaad/src/java.base/share/classes/java/util/ArrayList.java#L669-L680
* https://github.com/openjdk/jdk/blob/0ef03f122866f010ebf50683097e9b92e41cdaad/src/java.base/share/classes/sun/security/pkcs10/PKCS10.java#L356-L362
This PR adds such a method and provides tests for it. Additionally, this PR adds tests for `null` passed to `java.util.Arrays.hashCode` overloads, behaviour which was specified but untested.
-------------
Commit messages:
- Initial commit
Changes: https://git.openjdk.org/jdk/pull/14831/files
Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=14831&range=00
Issue: https://bugs.openjdk.org/browse/JDK-8311864
Stats: 149 lines in 4 files changed: 142 ins; 4 del; 3 mod
Patch: https://git.openjdk.org/jdk/pull/14831.diff
Fetch: git fetch https://git.openjdk.org/jdk.git pull/14831/head:pull/14831
PR: https://git.openjdk.org/jdk/pull/14831
More information about the core-libs-dev
mailing list