On Mon, 1 Sep 2025 09:00:32 GMT, Francesco Andreuzzi <d...@openjdk.org> wrote:

> In this PR I introduce some constants in `StackMapGenerator`. No change in 
> logic is expected.
> 
> Passes tests in `jdk/classfile`.

Thanks for pinging me. This must have got forgotten in the stream of emails.

src/java.base/share/classes/jdk/internal/classfile/impl/StackMapDecoder.java 
line 145:

> 143:             }
> 144:         } else if (fr.stack().size() == 1 && 
> fr.locals().equals(prevLocals)) {
> 145:             if (offsetDelta <= SAME_FRAME_END) {  //same locals 1 stack 
> item frame

This is better represented as
Suggestion:

            if (offsetDelta <= SAME_LOCALS_1_STACK_ITEM_FRAME_END  - 
SAME_LOCALS_1_STACK_ITEM_FRAME_START) {  //same locals 1 stack item frame

src/java.base/share/classes/jdk/internal/classfile/impl/StackMapGenerator.java 
line 188:

> 186: 
> 187:     public static final int
> 188:             SAME_FRAME_END = 63,

Can you add a comment on these constants that they are inclusive on both ends? 
A lot of ranges in Java are open on their higher end, like range notations in 
Arrays.copyOf or String.substring.

src/java.base/share/classes/jdk/internal/classfile/impl/StackMapGenerator.java 
line 1256:

> 1254:                 }
> 1255:             } else if (stackSize == 1 && localsSize == 
> prevFrame.localsSize && equals(locals, prevFrame.locals, localsSize)) {
> 1256:                 if (offsetDelta <= SAME_FRAME_END) {  //same locals 1 
> stack item frame

Suggestion:

                if (offsetDelta <= SAME_LOCALS_1_STACK_ITEM_FRAME_END  - 
SAME_LOCALS_1_STACK_ITEM_FRAME_START) {  //same locals 1 stack item frame

Same comment.

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

PR Comment: https://git.openjdk.org/jdk/pull/27029#issuecomment-3262178996
PR Review Comment: https://git.openjdk.org/jdk/pull/27029#discussion_r2327393978
PR Review Comment: https://git.openjdk.org/jdk/pull/27029#discussion_r2327385656
PR Review Comment: https://git.openjdk.org/jdk/pull/27029#discussion_r2327398615

Reply via email to