Re: RFR: 8268764: Use Long.hashCode() instead of int-cast where applicable [v3]
On Thu, 1 Jul 2021 10:38:24 GMT, Сергей Цыпанов wrote: >> 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 incrementally with one additional > commit since the last revision: > > 8268764: Update copy-right year Right, done! - PR: https://git.openjdk.java.net/jdk/pull/4491
Re: RFR: 8268764: Use Long.hashCode() instead of int-cast where applicable [v3]
On Thu, 1 Jul 2021 10:38:24 GMT, Сергей Цыпанов wrote: >> 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 incrementally with one additional > commit since the last revision: > > 8268764: Update copy-right year Marked as reviewed by kevinw (Committer). OK, one more (C) in src/jdk.jdi/share/classes/com/sun/tools/jdi/ReferenceTypeImpl.java and done. 8-) Needs a second Review before integrating, thanks. - PR: https://git.openjdk.java.net/jdk/pull/4491
Re: RFR: 8268764: Use Long.hashCode() instead of int-cast where applicable [v3]
> 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 incrementally with one additional commit since the last revision: 8268764: Update copy-right year - Changes: - all: https://git.openjdk.java.net/jdk/pull/4491/files - new: https://git.openjdk.java.net/jdk/pull/4491/files/12a1d3ac..932c26ad Webrevs: - full: https://webrevs.openjdk.java.net/?repo=jdk&pr=4491&range=02 - incr: https://webrevs.openjdk.java.net/?repo=jdk&pr=4491&range=01-02 Stats: 6 lines in 6 files changed: 0 ins; 0 del; 6 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