< 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 >