< prev index next >

src/java.base/share/classes/java/lang/invoke/MethodHandleNatives.java

Print this page
rev 58565 : 8238358: Implementation of JEP 371: Hidden Classes
Reviewed-by: duke
Contributed-by: mandy.chung@oracle.com, lois.foltan@oracle.com, david.holmes@oracle.com, harold.seigel@oracle.com, serguei.spitsyn@oracle.com, alex.buckley@oracle.com, jamsheed.c.m@oracle.com

*** 23,32 **** --- 23,34 ---- * questions. */ package java.lang.invoke; + import jdk.internal.access.JavaLangAccess; + import jdk.internal.access.SharedSecrets; import jdk.internal.ref.CleanerFactory; import sun.invoke.util.Wrapper; import java.lang.invoke.MethodHandles.Lookup; import java.lang.reflect.Field;
*** 135,144 **** --- 137,155 ---- REF_invokeStatic = 6, REF_invokeSpecial = 7, REF_newInvokeSpecial = 8, REF_invokeInterface = 9, REF_LIMIT = 10; + + /** + * Flags for Lookup.ClassOptions + */ + static final int + NESTMATE_CLASS = 0x00000001, + HIDDEN_CLASS = 0x00000002, + STRONG_LOADER_LINK = 0x00000004, + ACCESS_VM_ANNOTATIONS = 0x00000008; } static boolean refKindIsValid(int refKind) { return (refKind > REF_NONE && refKind < REF_LIMIT); }
*** 657,662 **** --- 668,682 ---- if (symbolicRefClass == definingClass) return true; if (symbolicRef.isStatic() || symbolicRef.isPrivate()) return false; return (definingClass.isAssignableFrom(symbolicRefClass) || // Msym overrides Mdef symbolicRefClass.isInterface()); // Mdef implements Msym } + + private static final JavaLangAccess JLA = SharedSecrets.getJavaLangAccess(); + /* + * A convenient method for LambdaForms to get the class data of a given class. + * LambdaForms cannot use condy via MethodHandles.classData + */ + static Object classData(Class<?> c) { + return JLA.classData(c); + } }
< prev index next >