On Mon, 8 Jul 2024 13:09:50 GMT, Adam Sotona <[email protected]> wrote:
> Class-File API constant pool implementation requires non-zero entry hash code.
> Unfortunately current implementation computes zero hash code for specific CP
> entries.
>
> This patch removes invalid and obsolete `AbstractPoolEntry::phiMix`
> calculation and assures all pool entries have non-zero hash. A regression
> test of the actual zero-hash `IntegerEntry` has been added.
>
> All pre-computed hash codes in `BoundAttribute::standardAttribute` are
> updated.
>
> The patch has no performance effect measurable by any of the actual
> Class-File API benchmarks.
>
> Please review.
>
> Thanks,
> Adam
src/java.base/share/classes/jdk/internal/classfile/impl/BootstrapMethodEntryImpl.java
line 79:
> 77: static int computeHashCode(MethodHandleEntryImpl handle,
> 78: List<? extends LoadableConstantEntry>
> arguments) {
> 79: return 31 * handle.hashCode() + arguments.hashCode();
Should we update the algorithm here, as this algorithm processes hash codes of
the 2nd last item of arguments and the handle the same, both just multiplied by
31?
Also need a copyright year update.
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/20074#discussion_r1668690446