RFR: 8338661: StackMapTable is invalid if frames appear in dead code

Adam Sotona asotona at openjdk.org
Tue Aug 20 13:59:21 UTC 2024


ClassFile API allows to build a class with dead code and provide custom `StackMapTable` attribute with user-specified frames covering the dead code.
`StackCounter` is responsible for calculation of `maxStack` and `maxLocals` in certain situations and it did not include the user-provided `StackMapTable` attribute. Dead code was skipped and `maxStack` or `maxLocals` might became underestimated.

This patch includes frames from user-provided `StackMapTable` attribute into the `StackCounter` calculations.

Please review.

Thanks,
Adam

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

Depends on: https://git.openjdk.org/jdk/pull/20637

Commit messages:
 - 8338661: StackMapTable is invalid if frames appear in dead code

Changes: https://git.openjdk.org/jdk/pull/20644/files
  Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=20644&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8338661
  Stats: 70 lines in 4 files changed: 61 ins; 7 del; 2 mod
  Patch: https://git.openjdk.org/jdk/pull/20644.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/20644/head:pull/20644

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


More information about the core-libs-dev mailing list