< prev index next >

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

Print this page

        

@@ -23,10 +23,12 @@
  * questions.
  */
 
 package java.lang.invoke;
 
+import jdk.internal.misc.JavaLangInvokeAccess;
+import jdk.internal.misc.SharedSecrets;
 import sun.invoke.util.BytecodeDescriptor;
 import sun.invoke.util.VerifyAccess;
 
 import java.lang.reflect.Constructor;
 import java.lang.reflect.Field;

@@ -1141,17 +1143,27 @@
             return buf;
         }
     }
 
     static {
-        // Allow privileged classes outside of java.lang
-        jdk.internal.misc.SharedSecrets.setJavaLangInvokeAccess(new jdk.internal.misc.JavaLangInvokeAccess() {
+        // StackFrameInfo stores Member and this provides the shared secrets
+        // for stack walker to access MemberName information.
+        SharedSecrets.setJavaLangInvokeAccess(new JavaLangInvokeAccess() {
+            @Override
             public Object newMemberName() {
                 return new MemberName();
             }
+
+            @Override
             public String getName(Object mname) {
                 MemberName memberName = (MemberName)mname;
                 return memberName.getName();
             }
+
+            @Override
+            public boolean isNative(Object mname) {
+                MemberName memberName = (MemberName)mname;
+                return memberName.isNative();
+            }
         });
     }
 }
< prev index next >