public class com.oracle.svm.core.SubstrateUtil$DiagnosticThunkRegister
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: com.oracle.svm.core.SubstrateUtil$DiagnosticThunkRegister
  super_class: java.lang.Object
{
  com.oracle.svm.core.SubstrateUtil$DiagnosticThunk[] diagnosticThunkRegistry;
    descriptor: [Lcom/oracle/svm/core/SubstrateUtil$DiagnosticThunk;
    flags: (0x0000) 

  public static synchronized com.oracle.svm.core.SubstrateUtil$DiagnosticThunkRegister getSingleton();
    descriptor: ()Lcom/oracle/svm/core/SubstrateUtil$DiagnosticThunkRegister;
    flags: (0x0029) ACC_PUBLIC, ACC_STATIC, ACC_SYNCHRONIZED
    Code:
      stack=3, locals=0, args_size=0
         0: .line 598
            ldc Lcom/oracle/svm/core/SubstrateUtil$DiagnosticThunkRegister;
            invokestatic org.graalvm.nativeimage.ImageSingletons.contains:(Ljava/lang/Class;)Z
            ifne 2
         1: .line 599
            ldc Lcom/oracle/svm/core/SubstrateUtil$DiagnosticThunkRegister;
            new com.oracle.svm.core.SubstrateUtil$DiagnosticThunkRegister
            dup
            invokespecial com.oracle.svm.core.SubstrateUtil$DiagnosticThunkRegister.<init>:()V
            invokestatic org.graalvm.nativeimage.ImageSingletons.add:(Ljava/lang/Class;Ljava/lang/Object;)V
         2: .line 601
      StackMap locals:
      StackMap stack:
            ldc Lcom/oracle/svm/core/SubstrateUtil$DiagnosticThunkRegister;
            invokestatic org.graalvm.nativeimage.ImageSingletons.lookup:(Ljava/lang/Class;)Ljava/lang/Object;
            checkcast com.oracle.svm.core.SubstrateUtil$DiagnosticThunkRegister
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
    RuntimeVisibleAnnotations: 
      org.graalvm.compiler.api.replacements.Fold()

  void <init>();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.oracle.svm.core.SubstrateUtil$DiagnosticThunkRegister this
         0: .line 606
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 607
            aload 0 /* this */
            iconst_0
            anewarray com.oracle.svm.core.SubstrateUtil$DiagnosticThunk
            putfield com.oracle.svm.core.SubstrateUtil$DiagnosticThunkRegister.diagnosticThunkRegistry:[Lcom/oracle/svm/core/SubstrateUtil$DiagnosticThunk;
         2: .line 608
            return
        end local 0 // com.oracle.svm.core.SubstrateUtil$DiagnosticThunkRegister this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lcom/oracle/svm/core/SubstrateUtil$DiagnosticThunkRegister;
    RuntimeVisibleAnnotations: 
      org.graalvm.nativeimage.Platforms(value = {Lorg/graalvm/nativeimage/Platform$HOSTED_ONLY;})

  public synchronized void register(com.oracle.svm.core.SubstrateUtil$DiagnosticThunk);
    descriptor: (Lcom/oracle/svm/core/SubstrateUtil$DiagnosticThunk;)V
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // com.oracle.svm.core.SubstrateUtil$DiagnosticThunkRegister this
        start local 1 // com.oracle.svm.core.SubstrateUtil$DiagnosticThunk diagnosticThunk
         0: .line 614
            aload 0 /* this */
            getfield com.oracle.svm.core.SubstrateUtil$DiagnosticThunkRegister.diagnosticThunkRegistry:[Lcom/oracle/svm/core/SubstrateUtil$DiagnosticThunk;
            aload 0 /* this */
            getfield com.oracle.svm.core.SubstrateUtil$DiagnosticThunkRegister.diagnosticThunkRegistry:[Lcom/oracle/svm/core/SubstrateUtil$DiagnosticThunk;
            arraylength
            iconst_1
            iadd
            invokestatic java.util.Arrays.copyOf:([Ljava/lang/Object;I)[Ljava/lang/Object;
            checkcast com.oracle.svm.core.SubstrateUtil$DiagnosticThunk[]
            astore 2 /* newArray */
        start local 2 // com.oracle.svm.core.SubstrateUtil$DiagnosticThunk[] newArray
         1: .line 615
            aload 2 /* newArray */
            aload 2 /* newArray */
            arraylength
            iconst_1
            isub
            aload 1 /* diagnosticThunk */
            aastore
         2: .line 616
            aload 0 /* this */
            aload 2 /* newArray */
            putfield com.oracle.svm.core.SubstrateUtil$DiagnosticThunkRegister.diagnosticThunkRegistry:[Lcom/oracle/svm/core/SubstrateUtil$DiagnosticThunk;
         3: .line 617
            return
        end local 2 // com.oracle.svm.core.SubstrateUtil$DiagnosticThunk[] newArray
        end local 1 // com.oracle.svm.core.SubstrateUtil$DiagnosticThunk diagnosticThunk
        end local 0 // com.oracle.svm.core.SubstrateUtil$DiagnosticThunkRegister this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    4     0             this  Lcom/oracle/svm/core/SubstrateUtil$DiagnosticThunkRegister;
            0    4     1  diagnosticThunk  Lcom/oracle/svm/core/SubstrateUtil$DiagnosticThunk;
            1    4     2         newArray  [Lcom/oracle/svm/core/SubstrateUtil$DiagnosticThunk;
    RuntimeVisibleAnnotations: 
      org.graalvm.nativeimage.Platforms(value = {Lorg/graalvm/nativeimage/Platform$HOSTED_ONLY;})
    MethodParameters:
                 Name  Flags
      diagnosticThunk  

  void callDiagnosticThunks(com.oracle.svm.core.log.Log);
    descriptor: (Lcom/oracle/svm/core/log/Log;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // com.oracle.svm.core.SubstrateUtil$DiagnosticThunkRegister this
        start local 1 // com.oracle.svm.core.log.Log log
         0: .line 622
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         1: goto 4
         2: .line 623
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield com.oracle.svm.core.SubstrateUtil$DiagnosticThunkRegister.diagnosticThunkRegistry:[Lcom/oracle/svm/core/SubstrateUtil$DiagnosticThunk;
            iload 2 /* i */
            aaload
            aload 1 /* log */
            invokeinterface com.oracle.svm.core.SubstrateUtil$DiagnosticThunk.invokeWithoutAllocation:(Lcom/oracle/svm/core/log/Log;)V
         3: .line 622
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
         4: iload 2 /* i */
            aload 0 /* this */
            getfield com.oracle.svm.core.SubstrateUtil$DiagnosticThunkRegister.diagnosticThunkRegistry:[Lcom/oracle/svm/core/SubstrateUtil$DiagnosticThunk;
            arraylength
            if_icmplt 2
        end local 2 // int i
         5: .line 625
            return
        end local 1 // com.oracle.svm.core.log.Log log
        end local 0 // com.oracle.svm.core.SubstrateUtil$DiagnosticThunkRegister this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lcom/oracle/svm/core/SubstrateUtil$DiagnosticThunkRegister;
            0    6     1   log  Lcom/oracle/svm/core/log/Log;
            1    5     2     i  I
    MethodParameters:
      Name  Flags
      log   
}
SourceFile: "SubstrateUtil.java"
NestHost: com.oracle.svm.core.SubstrateUtil
InnerClasses:
  public abstract DiagnosticThunk = com.oracle.svm.core.SubstrateUtil$DiagnosticThunk of com.oracle.svm.core.SubstrateUtil
  public DiagnosticThunkRegister = com.oracle.svm.core.SubstrateUtil$DiagnosticThunkRegister of com.oracle.svm.core.SubstrateUtil