From 434895324bfd95b5b2c0f8ce8ef6f8b4ec0942dc Mon Sep 17 00:00:00 2001 From: Michael Pfaff Date: Sat, 10 Aug 2024 16:19:48 -0400 Subject: [PATCH] Add missing implementation of JavaLangInvokeAccess.makeTrustedLookup --- .../share/classes/java/lang/invoke/MethodHandleImpl.java | 5 +++++ .../share/classes/java/lang/invoke/MethodHandles.java | 4 ++-- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/src/java.base/share/classes/java/lang/invoke/MethodHandleImpl.java b/src/java.base/share/classes/java/lang/invoke/MethodHandleImpl.java index 57446c9b2fdf0..27014f7f2bc41 100644 --- a/src/java.base/share/classes/java/lang/invoke/MethodHandleImpl.java +++ b/src/java.base/share/classes/java/lang/invoke/MethodHandleImpl.java @@ -1643,6 +1643,11 @@ public MethodHandle serializableConstructor(Class decl, Constructor ctorTo return IMPL_LOOKUP.serializableConstructor(decl, ctorToCall); } + @Override + public Lookup makeTrustedLookup(Class lookupClass) { + return new Lookup(lookupClass, null, Lookup.TRUSTED); + } + }); } diff --git a/src/java.base/share/classes/java/lang/invoke/MethodHandles.java b/src/java.base/share/classes/java/lang/invoke/MethodHandles.java index 0cb77f632b334..fa02ac088520c 100644 --- a/src/java.base/share/classes/java/lang/invoke/MethodHandles.java +++ b/src/java.base/share/classes/java/lang/invoke/MethodHandles.java @@ -1529,7 +1529,7 @@ class Lookup { private static final int ALL_MODES = (PUBLIC | PRIVATE | PROTECTED | PACKAGE | MODULE | UNCONDITIONAL | ORIGINAL); private static final int FULL_POWER_MODES = (ALL_MODES & ~UNCONDITIONAL); // with original access - private static final int TRUSTED = -1; + static final int TRUSTED = -1; /* * Adjust PUBLIC => PUBLIC|MODULE|ORIGINAL|UNCONDITIONAL @@ -1624,7 +1624,7 @@ public int lookupModes() { this(lookupClass, null, FULL_POWER_MODES); } - private Lookup(Class lookupClass, Class prevLookupClass, int allowedModes) { + Lookup(Class lookupClass, Class prevLookupClass, int allowedModes) { assert prevLookupClass == null || ((allowedModes & MODULE) == 0 && prevLookupClass.getModule() != lookupClass.getModule()); assert !lookupClass.isArray() && !lookupClass.isPrimitive();