On Sun, 27 Apr 2025 02:04:30 GMT, Chen Liang <li...@openjdk.org> wrote:
> Internal explicit counter support for Code max_stack and max_locals has been > already added in #24807. Since that example works well, we may consider > opening this functionality up to general users under strict restrictions. > > This is an advanced API; thus, I chose a more complex name > `withExplicitStackAndLocals` that discourages accidental use, and indicates > the exact order of stack and locals arguments. For integrity, the argument > checks are unconditional. And this is also barred behind `DROP_STACK_MAPS` > advanced option. > > I have enhanced the tests with a `CodeBuilderType` utility to test all types > of code builders; it is already effective at increasing coverage in some of > our existing tests that only cover DirectCodeBuilder, and simplify other > tests. It is particularly helpful for my new `BuilderExplicitMaxsTest`. test/jdk/jdk/classfile/BuilderExplicitMaxsTest.java line 67: > 65: void testValidArgs(ClassFile.StackMapsOption stackMapsOption, > CodeBuilderType builderType) { > 66: var cc = ClassFile.of(stackMapsOption); > 67: var bytes = cc.build(ClassDesc.of("Foo"), > builderType.asClassHandler("foo", MTD_void, 0, cob -> cob var bytes = cc.build( ClassDesc.of("Foo"), builderType.asClassHandler( "foo", MTD_void, 0, cob -> cob.return_() .withExplicitStackAndLocals(2, 3))); This might be more readable. ------------- PR Review Comment: https://git.openjdk.org/jdk/pull/24903#discussion_r2061984210