On 7/8/20 8:19 AM, Bob Vandette wrote:
Please review this RFE for JDK 16 that reduces a class dependency in the 
MethodHandles.Lookup class.

The ensureInitialized method from MethodHandles.Lookup creates a transient 
MemberName object only
to be used to throw an exception. This exception can be created in a more 
efficient manner without
using this class reducing the number of classes required. This reduction in 
dependencies is beneficial
to the GraalVM native-image tool and will be useful for future Leyden native 
image implementations.

I agree that Lookup::ensureInitialized should not depend MemberName.  This refactoring seems a reasonable approach.

RFE:

https://bugs.openjdk.java.net/browse/JDK-8249080

WEBREV:

http://cr.openjdk.java.net/~bobv/8249080/webrev.01/

3537         /**
3538          * Perform necessary <a href="MethodHandles.Lookup.html#secmgr">access checks</a>
3539          * for findClass or accessClass.
3540          */

This should also mention `ensureInitialized`.

3578             if (m == null) {
3579             // Step 2b:
3580                 if (!fullPowerLookup) {
3581 smgr.checkPermission(SecurityConstants.GET_CLASSLOADER_PERMISSION);
3582                 }
3583                 return;
3584             }

This is no longer needed.  Instead, this method should require a non-null MemberName argument.

Mandy

Reply via email to