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

Maurizio Cimadamore mcimadamore at openjdk.org
Fri Mar 31 11:52:23 UTC 2023


On Thu, 30 Mar 2023 19:55:15 GMT, Jorn Vernee <jvernee at openjdk.org> wrote:

>> 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:
> 
>   use existing MTD_void constant

Looks great!

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

Marked as reviewed by mcimadamore (Reviewer).

PR Review: https://git.openjdk.org/jdk/pull/13247#pullrequestreview-1366791011


More information about the core-libs-dev mailing list