RFR: 8354871: Replace stack map frame type magics with constants
Chen Liang
liach at openjdk.org
Sat Sep 6 13:37:13 UTC 2025
On Mon, 1 Sep 2025 09:00:32 GMT, Francesco Andreuzzi <duke at 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
More information about the core-libs-dev
mailing list