On Mon, 21 Mar 2022 14:24:30 GMT, Jim Laskey <jlas...@openjdk.org> wrote:
>> We propose to provide a runtime anonymous carrier class object generator; >> java.lang.runtime.Carrier. This generator class is designed to share >> anonymous classes when shapes are similar. For example, if several clients >> require objects containing two integer fields, then Carrier will ensure that >> each client generates carrier objects using the same underlying anonymous >> class. >> >> See JBS for details. > > Jim Laskey has updated the pull request with a new target base due to a merge > or a rebase. The incremental webrev excludes the unrelated changes brought in > by the merge/rebase. The pull request contains 18 additional commits since > the last revision: > > - Remove LOOKUP static final > - Merge branch 'master' into 8282798 > - Typos > - Update Carrier.java > - Redo API to use list, bring Carrier.component back > - Clean up API > - Remove redundant MethodHandle component(MethodType methodType, int i) API > - Revert to {@return} style comments. > - Clarify primitive store in array carriers. > - Use long array for primitives > - ... and 8 more: > https://git.openjdk.java.net/jdk/compare/7feac45e...a8657bbe src/java.base/share/classes/java/lang/runtime/Carrier.java line 574: > 572: try { > 573: Lookup lookup = MethodHandles.lookup(); > 574: return lookup.defineHiddenClass(bytes, false, > ClassOption.STRONG); Actually, this lookup object should probably be kept cached. ------------- PR: https://git.openjdk.java.net/jdk/pull/7744