> 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

Reply via email to