RFR: 8301703: java.base jdk.internal.foreign.abi.BindingSpecializer uses ASM to generate classes [v3]

Jorn Vernee jvernee at openjdk.org
Fri Mar 31 17:23:07 UTC 2023


> Rewrite BindingSpecializer to use the new class file API.
> 
> Note: There is a big try/catch/finally block generated in the `specialize` method that currently uses labels. I looked at replacing this with a call to `CodeBuilder::trying` but it would require threading the nested code builders through all the `emit*` methods, which currently access the 'global' CodeBuilder instance attached to the BindingSpecializer instance. Since there didn't really seem to be a big benefit to this, I've kept that try/catch/finally block as is, using labels.
> 
> The current implementation could also use `CheckClassAdapter` to do additional verification on the generated bytecode (ahead of the VM's verifier). I'm not sure if the new API has a replacement for that?

Jorn Vernee has updated the pull request incrementally with one additional commit since the last revision:

  Re-add PERFORM_VERIFICATION flag

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

Changes:
  - all: https://git.openjdk.org/jdk/pull/13247/files
  - new: https://git.openjdk.org/jdk/pull/13247/files/95c8d873..f7fdd2ce

Webrevs:
 - full: https://webrevs.openjdk.org/?repo=jdk&pr=13247&range=02
 - incr: https://webrevs.openjdk.org/?repo=jdk&pr=13247&range=01-02

  Stats: 11 lines in 1 file changed: 11 ins; 0 del; 0 mod
  Patch: https://git.openjdk.org/jdk/pull/13247.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/13247/head:pull/13247

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


More information about the core-libs-dev mailing list