RFR: 8321279: Implement hashCode() in Heap-X-Buffer.java.template
Vladimir Sitnikov
vsitnikov at openjdk.org
Wed Dec 6 15:36:37 UTC 2023
On Wed, 6 Dec 2023 13:31:02 GMT, Sergey Tsypanov <stsypanov at openjdk.org> wrote:
> Currently `Heap*Buffer.hashCode()` is inherited from `*Buffer` and implemented as
>
> public int hashCode() {
> int h = 1;
> int p = position();
> for (int i = limit() - 1; i >= p; i--)
> h = 31 * h + (int)get(i);
> return h;
> }
>
> This can be improved using `ArraysSupport.vectorizedHashCode()`
src/java.base/share/classes/java/nio/Heap-X-Buffer.java.template line 710:
> 708:
> 709: public int hashCode() {
> 710: return ArraysSupport.vectorizedHashCode(hb, position(), limit() - position(), 1, ArraysSupport.T_BYTE);
Suggestion:
return ArraysSupport.vectorizedHashCode(hb, ix(offset()), remaining(), 1, ArraysSupport.T_BYTE);
src/java.base/share/classes/java/nio/Heap-X-Buffer.java.template line 741:
> 739:
> 740: public int hashCode() {
> 741: return ArraysSupport.vectorizedHashCode(hb, position(), limit() - position(), 1, ArraysSupport.T_CHAR);
Suggestion:
return ArraysSupport.vectorizedHashCode(hb, ix(position()), remaining(), 1, ArraysSupport.T_CHAR);
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/16992#discussion_r1417519895
PR Review Comment: https://git.openjdk.org/jdk/pull/16992#discussion_r1417521502
More information about the nio-dev
mailing list