final class com.oracle.truffle.api.TruffleLogger$ChildLoggerRef extends com.oracle.truffle.api.TruffleLogger$AbstractLoggerRef
  minor version: 0
  major version: 59
  flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
  this_class: com.oracle.truffle.api.TruffleLogger$ChildLoggerRef
  super_class: com.oracle.truffle.api.TruffleLogger$AbstractLoggerRef
{
  private volatile java.lang.ref.Reference<com.oracle.truffle.api.TruffleLogger> parent;
    descriptor: Ljava/lang/ref/Reference;
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
    Signature: Ljava/lang/ref/Reference<Lcom/oracle/truffle/api/TruffleLogger;>;

  void <init>(com.oracle.truffle.api.TruffleLogger);
    descriptor: (Lcom/oracle/truffle/api/TruffleLogger;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.truffle.api.TruffleLogger$ChildLoggerRef this
        start local 1 // com.oracle.truffle.api.TruffleLogger logger
         0: .line 933
            aload 0 /* this */
            aload 1 /* logger */
            invokespecial com.oracle.truffle.api.TruffleLogger$AbstractLoggerRef.<init>:(Lcom/oracle/truffle/api/TruffleLogger;)V
         1: .line 934
            return
        end local 1 // com.oracle.truffle.api.TruffleLogger logger
        end local 0 // com.oracle.truffle.api.TruffleLogger$ChildLoggerRef this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    this  Lcom/oracle/truffle/api/TruffleLogger$ChildLoggerRef;
            0    2     1  logger  Lcom/oracle/truffle/api/TruffleLogger;
    MethodParameters:
        Name  Flags
      logger  final

  void setParent(com.oracle.truffle.api.TruffleLogger);
    descriptor: (Lcom/oracle/truffle/api/TruffleLogger;)V
    flags: (0x0000) 
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // com.oracle.truffle.api.TruffleLogger$ChildLoggerRef this
        start local 1 // com.oracle.truffle.api.TruffleLogger parent
         0: .line 937
            aload 0 /* this */
            new java.lang.ref.WeakReference
            dup
            aload 1 /* parent */
            invokespecial java.lang.ref.WeakReference.<init>:(Ljava/lang/Object;)V
            putfield com.oracle.truffle.api.TruffleLogger$ChildLoggerRef.parent:Ljava/lang/ref/Reference;
         1: .line 938
            return
        end local 1 // com.oracle.truffle.api.TruffleLogger parent
        end local 0 // com.oracle.truffle.api.TruffleLogger$ChildLoggerRef this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    this  Lcom/oracle/truffle/api/TruffleLogger$ChildLoggerRef;
            0    2     1  parent  Lcom/oracle/truffle/api/TruffleLogger;
    MethodParameters:
        Name  Flags
      parent  

  public void close();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=1
        start local 0 // com.oracle.truffle.api.TruffleLogger$ChildLoggerRef this
         0: .line 942
            aload 0 /* this */
            invokevirtual com.oracle.truffle.api.TruffleLogger$ChildLoggerRef.shouldClose:()Z
            ifeq 7
         1: .line 943
            aload 0 /* this */
            getfield com.oracle.truffle.api.TruffleLogger$ChildLoggerRef.parent:Ljava/lang/ref/Reference;
            astore 1 /* p */
        start local 1 // java.lang.ref.Reference p
         2: .line 944
            aload 1 /* p */
            ifnull 7
         3: .line 945
            aload 1 /* p */
            invokevirtual java.lang.ref.Reference.get:()Ljava/lang/Object;
            checkcast com.oracle.truffle.api.TruffleLogger
            astore 2 /* parentLogger */
        start local 2 // com.oracle.truffle.api.TruffleLogger parentLogger
         4: .line 946
            aload 2 /* parentLogger */
            ifnull 6
         5: .line 947
            aload 2 /* parentLogger */
            aload 0 /* this */
            invokevirtual com.oracle.truffle.api.TruffleLogger.removeChild:(Lcom/oracle/truffle/api/TruffleLogger$ChildLoggerRef;)V
         6: .line 949
      StackMap locals: java.lang.ref.Reference com.oracle.truffle.api.TruffleLogger
      StackMap stack:
            aload 0 /* this */
            aconst_null
            putfield com.oracle.truffle.api.TruffleLogger$ChildLoggerRef.parent:Ljava/lang/ref/Reference;
        end local 2 // com.oracle.truffle.api.TruffleLogger parentLogger
        end local 1 // java.lang.ref.Reference p
         7: .line 952
      StackMap locals:
      StackMap stack:
            return
        end local 0 // com.oracle.truffle.api.TruffleLogger$ChildLoggerRef this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    8     0          this  Lcom/oracle/truffle/api/TruffleLogger$ChildLoggerRef;
            2    7     1             p  Ljava/lang/ref/Reference<Lcom/oracle/truffle/api/TruffleLogger;>;
            4    7     2  parentLogger  Lcom/oracle/truffle/api/TruffleLogger;
}
SourceFile: "TruffleLogger.java"
NestHost: com.oracle.truffle.api.TruffleLogger
InnerClasses:
  private abstract AbstractLoggerRef = com.oracle.truffle.api.TruffleLogger$AbstractLoggerRef of com.oracle.truffle.api.TruffleLogger
  private final ChildLoggerRef = com.oracle.truffle.api.TruffleLogger$ChildLoggerRef of com.oracle.truffle.api.TruffleLogger