RFR: 8268764: Use Long.hashCode() instead of int-cast where applicable
Сергей Цыпанов
github.com+10835776+stsypanov at openjdk.java.net
Tue Jun 15 12:22:50 UTC 2021
In some JDK classes there's still the following hashCode() implementation:
long objNum;
public int hashCode() {
return (int) objNum;
}
This outdated expression should be replaced with Long.hashCode(long) as it
- uses all bits of the original value, does not discard any information upfront. For example, depending on how you are generating the IDs, the upper bits could change more frequently (or the opposite).
- does not introduce any bias towards values with more ones (zeros), as it would be the case if the two halves were combined with an OR (AND) operation.
See https://stackoverflow.com/a/4045083
This is related to https://github.com/openjdk/jdk/pull/4309
-------------
Commit messages:
- 8268764: Use Long.hashCode() instead of int-cast where applicable
Changes: https://git.openjdk.java.net/jdk/pull/4491/files
Webrev: https://webrevs.openjdk.java.net/?repo=jdk&pr=4491&range=00
Issue: https://bugs.openjdk.java.net/browse/JDK-8268764
Stats: 15 lines in 9 files changed: 6 ins; 0 del; 9 mod
Patch: https://git.openjdk.java.net/jdk/pull/4491.diff
Fetch: git fetch https://git.openjdk.java.net/jdk pull/4491/head:pull/4491
PR: https://git.openjdk.java.net/jdk/pull/4491
More information about the serviceability-dev
mailing list