> 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
Adam Sotona 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 three additional commits since the last revision: - Merge remote-tracking branch 'openjdk/master' into JDK-8338661-stack-counter # Conflicts: # test/jdk/jdk/classfile/StackMapsTest.java - 8338661: StackMapTable is invalid if frames appear in dead code - 8338623: StackCounter adding extraneous slots for receiver invoke instructions ------------- Changes: - all: https://git.openjdk.org/jdk/pull/20644/files - new: https://git.openjdk.org/jdk/pull/20644/files/a5989c97..22c00b99 Webrevs: - full: https://webrevs.openjdk.org/?repo=jdk&pr=20644&range=02 - incr: https://webrevs.openjdk.org/?repo=jdk&pr=20644&range=01-02 Stats: 679 lines in 35 files changed: 516 ins; 16 del; 147 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