class java.lang.StackFrameInfo implements java.lang.StackWalker$StackFrame
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: java.lang.StackFrameInfo
  super_class: java.lang.Object
{
  private static final jdk.internal.misc.JavaLangInvokeAccess JLIA;
    descriptor: Ljdk/internal/misc/JavaLangInvokeAccess;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private final boolean retainClassRef;
    descriptor: Z
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.lang.Object memberName;
    descriptor: Ljava/lang/Object;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private int bci;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private volatile java.lang.StackTraceElement ste;
    descriptor: Ljava/lang/StackTraceElement;
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 36
            invokestatic jdk.internal.misc.SharedSecrets.getJavaLangInvokeAccess:()Ljdk/internal/misc/JavaLangInvokeAccess;
         1: .line 35
            putstatic java.lang.StackFrameInfo.JLIA:Ljdk/internal/misc/JavaLangInvokeAccess;
         2: .line 36
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  void <init>(java.lang.StackWalker);
    descriptor: (Ljava/lang/StackWalker;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // java.lang.StackFrameInfo this
        start local 1 // java.lang.StackWalker walker
         0: .line 50
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 51
            aload 0 /* this */
            aload 1 /* walker */
            getfield java.lang.StackWalker.retainClassRef:Z
            putfield java.lang.StackFrameInfo.retainClassRef:Z
         2: .line 52
            aload 0 /* this */
            getstatic java.lang.StackFrameInfo.JLIA:Ljdk/internal/misc/JavaLangInvokeAccess;
            invokeinterface jdk.internal.misc.JavaLangInvokeAccess.newMemberName:()Ljava/lang/Object;
            putfield java.lang.StackFrameInfo.memberName:Ljava/lang/Object;
         3: .line 53
            return
        end local 1 // java.lang.StackWalker walker
        end local 0 // java.lang.StackFrameInfo this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    4     0    this  Ljava/lang/StackFrameInfo;
            0    4     1  walker  Ljava/lang/StackWalker;
    MethodParameters:
        Name  Flags
      walker  

  java.lang.Class<?> declaringClass();
    descriptor: ()Ljava/lang/Class;
    flags: (0x0000) 
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.StackFrameInfo this
         0: .line 58
            getstatic java.lang.StackFrameInfo.JLIA:Ljdk/internal/misc/JavaLangInvokeAccess;
            aload 0 /* this */
            getfield java.lang.StackFrameInfo.memberName:Ljava/lang/Object;
            invokeinterface jdk.internal.misc.JavaLangInvokeAccess.getDeclaringClass:(Ljava/lang/Object;)Ljava/lang/Class;
            areturn
        end local 0 // java.lang.StackFrameInfo this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/lang/StackFrameInfo;
    Signature: ()Ljava/lang/Class<*>;

  public java.lang.String getClassName();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.lang.StackFrameInfo this
         0: .line 65
            aload 0 /* this */
            invokevirtual java.lang.StackFrameInfo.declaringClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            areturn
        end local 0 // java.lang.StackFrameInfo this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/lang/StackFrameInfo;

  public java.lang.Class<?> getDeclaringClass();
    descriptor: ()Ljava/lang/Class;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.lang.StackFrameInfo this
         0: .line 70
            aload 0 /* this */
            invokevirtual java.lang.StackFrameInfo.ensureRetainClassRefEnabled:()V
         1: .line 71
            aload 0 /* this */
            invokevirtual java.lang.StackFrameInfo.declaringClass:()Ljava/lang/Class;
            areturn
        end local 0 // java.lang.StackFrameInfo this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Ljava/lang/StackFrameInfo;
    Signature: ()Ljava/lang/Class<*>;

  public java.lang.String getMethodName();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.StackFrameInfo this
         0: .line 76
            getstatic java.lang.StackFrameInfo.JLIA:Ljdk/internal/misc/JavaLangInvokeAccess;
            aload 0 /* this */
            getfield java.lang.StackFrameInfo.memberName:Ljava/lang/Object;
            invokeinterface jdk.internal.misc.JavaLangInvokeAccess.getName:(Ljava/lang/Object;)Ljava/lang/String;
            areturn
        end local 0 // java.lang.StackFrameInfo this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/lang/StackFrameInfo;

  public java.lang.invoke.MethodType getMethodType();
    descriptor: ()Ljava/lang/invoke/MethodType;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.StackFrameInfo this
         0: .line 81
            aload 0 /* this */
            invokevirtual java.lang.StackFrameInfo.ensureRetainClassRefEnabled:()V
         1: .line 82
            getstatic java.lang.StackFrameInfo.JLIA:Ljdk/internal/misc/JavaLangInvokeAccess;
            aload 0 /* this */
            getfield java.lang.StackFrameInfo.memberName:Ljava/lang/Object;
            invokeinterface jdk.internal.misc.JavaLangInvokeAccess.getMethodType:(Ljava/lang/Object;)Ljava/lang/invoke/MethodType;
            areturn
        end local 0 // java.lang.StackFrameInfo this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Ljava/lang/StackFrameInfo;

  public java.lang.String getDescriptor();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.StackFrameInfo this
         0: .line 87
            getstatic java.lang.StackFrameInfo.JLIA:Ljdk/internal/misc/JavaLangInvokeAccess;
            aload 0 /* this */
            getfield java.lang.StackFrameInfo.memberName:Ljava/lang/Object;
            invokeinterface jdk.internal.misc.JavaLangInvokeAccess.getMethodDescriptor:(Ljava/lang/Object;)Ljava/lang/String;
            areturn
        end local 0 // java.lang.StackFrameInfo this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/lang/StackFrameInfo;

  public int getByteCodeIndex();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.lang.StackFrameInfo this
         0: .line 93
            aload 0 /* this */
            invokevirtual java.lang.StackFrameInfo.isNativeMethod:()Z
            ifeq 2
         1: .line 94
            iconst_m1
            ireturn
         2: .line 96
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield java.lang.StackFrameInfo.bci:I
            ireturn
        end local 0 // java.lang.StackFrameInfo this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Ljava/lang/StackFrameInfo;

  public java.lang.String getFileName();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.lang.StackFrameInfo this
         0: .line 101
            aload 0 /* this */
            invokevirtual java.lang.StackFrameInfo.toStackTraceElement:()Ljava/lang/StackTraceElement;
            invokevirtual java.lang.StackTraceElement.getFileName:()Ljava/lang/String;
            areturn
        end local 0 // java.lang.StackFrameInfo this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/lang/StackFrameInfo;

  public int getLineNumber();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.lang.StackFrameInfo this
         0: .line 107
            aload 0 /* this */
            invokevirtual java.lang.StackFrameInfo.isNativeMethod:()Z
            ifeq 2
         1: .line 108
            bipush -2
            ireturn
         2: .line 110
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual java.lang.StackFrameInfo.toStackTraceElement:()Ljava/lang/StackTraceElement;
            invokevirtual java.lang.StackTraceElement.getLineNumber:()I
            ireturn
        end local 0 // java.lang.StackFrameInfo this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Ljava/lang/StackFrameInfo;

  public boolean isNativeMethod();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.StackFrameInfo this
         0: .line 116
            getstatic java.lang.StackFrameInfo.JLIA:Ljdk/internal/misc/JavaLangInvokeAccess;
            aload 0 /* this */
            getfield java.lang.StackFrameInfo.memberName:Ljava/lang/Object;
            invokeinterface jdk.internal.misc.JavaLangInvokeAccess.isNative:(Ljava/lang/Object;)Z
            ireturn
        end local 0 // java.lang.StackFrameInfo this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/lang/StackFrameInfo;

  public java.lang.String toString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.lang.StackFrameInfo this
         0: .line 121
            aload 0 /* this */
            invokevirtual java.lang.StackFrameInfo.toStackTraceElement:()Ljava/lang/StackTraceElement;
            invokevirtual java.lang.StackTraceElement.toString:()Ljava/lang/String;
            areturn
        end local 0 // java.lang.StackFrameInfo this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/lang/StackFrameInfo;

  public java.lang.StackTraceElement toStackTraceElement();
    descriptor: ()Ljava/lang/StackTraceElement;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=1
        start local 0 // java.lang.StackFrameInfo this
         0: .line 126
            aload 0 /* this */
            getfield java.lang.StackFrameInfo.ste:Ljava/lang/StackTraceElement;
            astore 1 /* s */
        start local 1 // java.lang.StackTraceElement s
         1: .line 127
            aload 1 /* s */
            ifnonnull 10
         2: .line 128
            aload 0 /* this */
            dup
            astore 2
            monitorenter
         3: .line 129
            aload 0 /* this */
            getfield java.lang.StackFrameInfo.ste:Ljava/lang/StackTraceElement;
            astore 1 /* s */
         4: .line 130
            aload 1 /* s */
            ifnonnull 6
         5: .line 131
            aload 0 /* this */
            aload 0 /* this */
            invokestatic java.lang.StackTraceElement.of:(Ljava/lang/StackFrameInfo;)Ljava/lang/StackTraceElement;
            dup
            astore 1 /* s */
            putfield java.lang.StackFrameInfo.ste:Ljava/lang/StackTraceElement;
         6: .line 128
      StackMap locals: java.lang.StackTraceElement java.lang.StackFrameInfo
      StackMap stack:
            aload 2
            monitorexit
         7: goto 10
      StackMap locals:
      StackMap stack: java.lang.Throwable
         8: aload 2
            monitorexit
         9: athrow
        10: .line 135
      StackMap locals:
      StackMap stack:
            aload 1 /* s */
            areturn
        end local 1 // java.lang.StackTraceElement s
        end local 0 // java.lang.StackFrameInfo this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   11     0  this  Ljava/lang/StackFrameInfo;
            1   11     1     s  Ljava/lang/StackTraceElement;
      Exception table:
        from    to  target  type
           3     7       8  any
           8     9       8  any

  private void ensureRetainClassRefEnabled();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // java.lang.StackFrameInfo this
         0: .line 139
            aload 0 /* this */
            getfield java.lang.StackFrameInfo.retainClassRef:Z
            ifne 2
         1: .line 140
            new java.lang.UnsupportedOperationException
            dup
            ldc "No access to RETAIN_CLASS_REFERENCE"
            invokespecial java.lang.UnsupportedOperationException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 142
      StackMap locals:
      StackMap stack:
            return
        end local 0 // java.lang.StackFrameInfo this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Ljava/lang/StackFrameInfo;
}
SourceFile: "StackFrameInfo.java"
InnerClasses:
  public abstract StackFrame = java.lang.StackWalker$StackFrame of java.lang.StackWalker