RFR: 8300590: [JVMCI] BytecodeFrame.equals is broken

Doug Simon dnsimon at openjdk.org
Thu Jan 19 21:55:36 UTC 2023


`BytecodeFrame.equals` returns true even when the frames are found to be not equal: https://github.com/openjdk/jdk/blob/7bf0d1465e73d83aae30f1cd9fd318af9e9c1b70/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.code/src/jdk/vm/ci/code/BytecodeFrame.java#L375

This PR fixes that, adds a test and improves both `BytecodeFrame.hashCode` and `BytecodeFrame.equals` to take all fields into account.

Given the nature of the bug in `BytecodeFrame.equals` that this PR fixes, it's pretty clear that `BytecodeFrame` has never been (reliably) used as a key in a map.

-------------

Commit messages:
 - fix bug in BytecodeFrame.equals

Changes: https://git.openjdk.org/jdk/pull/12084/files
 Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=12084&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8300590
  Stats: 148 lines in 2 files changed: 131 ins; 8 del; 9 mod
  Patch: https://git.openjdk.org/jdk/pull/12084.diff
  Fetch: git fetch https://git.openjdk.org/jdk pull/12084/head:pull/12084

PR: https://git.openjdk.org/jdk/pull/12084


More information about the hotspot-compiler-dev mailing list