RFR: 8341275: Explicit counter support for Code attribute building

Chen Liang liach at openjdk.org
Sun Apr 27 02:09:40 UTC 2025


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

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

Commit messages:
 - 8341275: Explicit counter support for Code attribute building

Changes: https://git.openjdk.org/jdk/pull/24903/files
  Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=24903&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8341275
  Stats: 314 lines in 10 files changed: 262 ins; 19 del; 33 mod
  Patch: https://git.openjdk.org/jdk/pull/24903.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/24903/head:pull/24903

PR: https://git.openjdk.org/jdk/pull/24903


More information about the core-libs-dev mailing list