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