On Wed, 5 Apr 2023 13:22:30 GMT, Jorn Vernee <jver...@openjdk.org> wrote:
>> Chen Liang 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 13 additional >> commits since the last revision: >> >> - Use a dumper for interface instances, other cleanup >> - Merge branch 'master' into explore/mhp-iface >> - Merge branch 'master' into explore/mhp-iface >> - Remove unused JavaLangReflectReflectAccess.invokeDefault >> - rethrow error >> - Benchmark compareing to lamda metafactory, various minor updates >> - Cache the spinned class, loading is still slow >> - Wrapper instance type is already available >> - mark records as private >> - Merge branch 'master' into explore/mhp-iface >> - ... and 3 more: https://git.openjdk.org/jdk/compare/3fd633cd...0eec507d > > src/java.base/share/classes/java/lang/invoke/MethodHandleProxies.java line > 213: > >> 211: .defineClassAsLookup(true, List.of(mhs)); >> 212: proxy = lookup.findConstructor(lookup.lookupClass(), >> methodType(void.class)) >> 213: .asType(methodType(Object.class)).invokeExact(); > > This can use `invoke` instead of an explicit `asType` and `invokeExact`. It > is more or less the same. > Suggestion: > > proxy = lookup.findConstructor(lookup.lookupClass(), > methodType(void.class)).invoke(); @JornVernee Is there any performance difference with `invokeExact` vs `invoke`? I have the impression there is. ------------- PR Review Comment: https://git.openjdk.org/jdk/pull/13197#discussion_r1160099637