RFR: 6983726: remove Proxy from MethodHandleProxies.asInterfaceInstance SAM conversion [v4]
Jorn Vernee
jvernee at openjdk.org
Thu Apr 6 21:17:23 UTC 2023
On Thu, 6 Apr 2023 17:56:23 GMT, Mandy Chung <mchung at openjdk.org> wrote:
>> 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.
It only matters when we get to C2 compilation for a constant method handle instance being called, which is not the case here. `invoke` is just a nice shorthand for doing an inexact call.
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/13197#discussion_r1160263910
More information about the core-libs-dev
mailing list