RFR: JDK-8282798 java.lang.runtime.Carrier [v10]

ExE Boss duke at openjdk.java.net
Mon Mar 21 07:32:35 UTC 2022


On Mon, 21 Mar 2022 06:29:53 GMT, Rémi Forax <forax at openjdk.org> wrote:

>> src/java.base/share/classes/java/lang/runtime/Carrier.java line 309:
>> 
>>> 307:         static {
>>> 308:             LOOKUP = MethodHandles.lookup();
>>> 309:             UNSAFE = Unsafe.getUnsafe();
>> 
>> It might be better to use `java.lang.invoke.MethodHandleStatics.UNSAFE`, and probably also `java.lang.invoke.MethodHandles.Lookup.IMPL_LOOKUP`.
>
> The package is java.lang.runtime not java.lang.invoke so both fields are not accessible.

Well, you could use `SharedSecrets.getJavaLangInvokeAccess().findStatic(…)` and `SharedSecrets.getJavaLangInvokeAccess().findVirtual(…)` in place of `LOOKUP.findStatic(…)` and `LOOKUP.findVirtual(…)`.

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

PR: https://git.openjdk.java.net/jdk/pull/7744


More information about the core-libs-dev mailing list