< prev index next >

src/java.base/share/classes/java/lang/StackFrameInfo.java

Print this page

        

*** 27,42 **** import jdk.internal.misc.JavaLangInvokeAccess; import jdk.internal.misc.SharedSecrets; import static java.lang.StackWalker.Option.*; import java.lang.StackWalker.StackFrame; - import java.lang.reflect.Module; - import java.util.Optional; - import java.util.OptionalInt; class StackFrameInfo implements StackFrame { ! private final static JavaLangInvokeAccess jlInvokeAccess = SharedSecrets.getJavaLangInvokeAccess(); // Footprint improvement: MemberName::clazz can replace // StackFrameInfo::declaringClass. --- 27,39 ---- import jdk.internal.misc.JavaLangInvokeAccess; import jdk.internal.misc.SharedSecrets; import static java.lang.StackWalker.Option.*; import java.lang.StackWalker.StackFrame; class StackFrameInfo implements StackFrame { ! private final static JavaLangInvokeAccess JLIA = SharedSecrets.getJavaLangInvokeAccess(); // Footprint improvement: MemberName::clazz can replace // StackFrameInfo::declaringClass.
*** 52,62 **** */ StackFrameInfo(StackWalker walker) { this.walker = walker; this.declaringClass = null; this.bci = -1; ! this.memberName = jlInvokeAccess.newMemberName(); } @Override public String getClassName() { return declaringClass.getName(); --- 49,59 ---- */ StackFrameInfo(StackWalker walker) { this.walker = walker; this.declaringClass = null; this.bci = -1; ! this.memberName = JLIA.newMemberName(); } @Override public String getClassName() { return declaringClass.getName();
*** 68,96 **** return declaringClass; } @Override public String getMethodName() { ! return jlInvokeAccess.getName(memberName); ! } ! ! @Override ! public final Optional<String> getFileName() { ! StackTraceElement ste = toStackTraceElement(); ! return ste.getFileName() != null ? Optional.of(ste.getFileName()) : Optional.empty(); ! } ! ! @Override ! public final OptionalInt getLineNumber() { ! StackTraceElement ste = toStackTraceElement(); ! return ste.getLineNumber() > 0 ? OptionalInt.of(ste.getLineNumber()) : OptionalInt.empty(); } @Override public final boolean isNativeMethod() { ! StackTraceElement ste = toStackTraceElement(); ! return ste.isNativeMethod(); } @Override public String toString() { StackTraceElement ste = toStackTraceElement(); --- 65,80 ---- return declaringClass; } @Override public String getMethodName() { ! return JLIA.getName(memberName); } @Override public final boolean isNativeMethod() { ! return JLIA.isNative(memberName); } @Override public String toString() { StackTraceElement ste = toStackTraceElement();
< prev index next >