RFR: 8268764: Use Long.hashCode() instead of int-cast where applicable [v2]
Сергей Цыпанов
github.com+10835776+stsypanov at openjdk.java.net
Wed Jun 30 11:49:51 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
Сергей Цыпанов has updated the pull request with a new target base due to a merge or a rebase. The incremental webrev excludes the unrelated changes brought in by the merge/rebase. The pull request contains two additional commits since the last revision:
- Merge branch 'master' into 8268764
- 8268764: Use Long.hashCode() instead of int-cast where applicable
-------------
Changes:
- all: https://git.openjdk.java.net/jdk/pull/4491/files
- new: https://git.openjdk.java.net/jdk/pull/4491/files/27233ae1..12a1d3ac
Webrevs:
- full: https://webrevs.openjdk.java.net/?repo=jdk&pr=4491&range=01
- incr: https://webrevs.openjdk.java.net/?repo=jdk&pr=4491&range=00-01
Stats: 44011 lines in 878 files changed: 23038 ins; 17963 del; 3010 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