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

Chen Liang liach at openjdk.org
Tue Aug 20 15:19:51 UTC 2024


On Tue, 20 Aug 2024 15:08:23 GMT, Adam Sotona <asotona at openjdk.org> wrote:

>> 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

Marked as reviewed by liach (Reviewer).

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

PR Review: https://git.openjdk.org/jdk/pull/20644#pullrequestreview-2248315940


More information about the core-libs-dev mailing list