final class org.graalvm.compiler.hotspot.HotSpotGraalJVMCIServiceLocator$Shared
  minor version: 0
  major version: 59
  flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
  this_class: org.graalvm.compiler.hotspot.HotSpotGraalJVMCIServiceLocator$Shared
  super_class: java.lang.Object
{
  static final org.graalvm.compiler.hotspot.HotSpotGraalJVMCIServiceLocator$Shared SINGLETON;
    descriptor: Lorg/graalvm/compiler/hotspot/HotSpotGraalJVMCIServiceLocator$Shared;
    flags: (0x0018) ACC_STATIC, ACC_FINAL

  private org.graalvm.compiler.hotspot.HotSpotGraalRuntime graalRuntime;
    descriptor: Lorg/graalvm/compiler/hotspot/HotSpotGraalRuntime;
    flags: (0x0002) ACC_PRIVATE
    RuntimeVisibleAnnotations: 
      jdk.vm.ci.common.NativeImageReinitialize()

  static final boolean $assertionsDisabled;
    descriptor: Z
    flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 41
            ldc Lorg/graalvm/compiler/hotspot/HotSpotGraalJVMCIServiceLocator;
            invokevirtual java.lang.Class.desiredAssertionStatus:()Z
            ifne 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: putstatic org.graalvm.compiler.hotspot.HotSpotGraalJVMCIServiceLocator$Shared.$assertionsDisabled:Z
         3: .line 42
            new org.graalvm.compiler.hotspot.HotSpotGraalJVMCIServiceLocator$Shared
            dup
            invokespecial org.graalvm.compiler.hotspot.HotSpotGraalJVMCIServiceLocator$Shared.<init>:()V
            putstatic org.graalvm.compiler.hotspot.HotSpotGraalJVMCIServiceLocator$Shared.SINGLETON:Lorg/graalvm/compiler/hotspot/HotSpotGraalJVMCIServiceLocator$Shared;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private void <init>();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.hotspot.HotSpotGraalJVMCIServiceLocator$Shared this
         0: .line 41
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // org.graalvm.compiler.hotspot.HotSpotGraalJVMCIServiceLocator$Shared this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/graalvm/compiler/hotspot/HotSpotGraalJVMCIServiceLocator$Shared;

  <T> T getProvider(java.lang.Class<T>, org.graalvm.compiler.hotspot.HotSpotGraalJVMCIServiceLocator);
    descriptor: (Ljava/lang/Class;Lorg/graalvm/compiler/hotspot/HotSpotGraalJVMCIServiceLocator;)Ljava/lang/Object;
    flags: (0x0000) 
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // org.graalvm.compiler.hotspot.HotSpotGraalJVMCIServiceLocator$Shared this
        start local 1 // java.lang.Class service
        start local 2 // org.graalvm.compiler.hotspot.HotSpotGraalJVMCIServiceLocator locator
         0: .line 45
            aload 1 /* service */
            ldc Ljdk/vm/ci/runtime/JVMCICompilerFactory;
            if_acmpne 2
         1: .line 46
            aload 1 /* service */
            new org.graalvm.compiler.hotspot.HotSpotGraalCompilerFactory
            dup
            aload 2 /* locator */
            invokespecial org.graalvm.compiler.hotspot.HotSpotGraalCompilerFactory.<init>:(Lorg/graalvm/compiler/hotspot/HotSpotGraalJVMCIServiceLocator;)V
            invokevirtual java.lang.Class.cast:(Ljava/lang/Object;)Ljava/lang/Object;
            areturn
         2: .line 47
      StackMap locals:
      StackMap stack:
            aload 1 /* service */
            ldc Ljdk/vm/ci/hotspot/HotSpotVMEventListener;
            if_acmpne 5
         3: .line 48
            aload 0 /* this */
            getfield org.graalvm.compiler.hotspot.HotSpotGraalJVMCIServiceLocator$Shared.graalRuntime:Lorg/graalvm/compiler/hotspot/HotSpotGraalRuntime;
            ifnull 5
         4: .line 49
            aload 1 /* service */
            new org.graalvm.compiler.hotspot.HotSpotGraalVMEventListener
            dup
            aload 0 /* this */
            getfield org.graalvm.compiler.hotspot.HotSpotGraalJVMCIServiceLocator$Shared.graalRuntime:Lorg/graalvm/compiler/hotspot/HotSpotGraalRuntime;
            invokespecial org.graalvm.compiler.hotspot.HotSpotGraalVMEventListener.<init>:(Lorg/graalvm/compiler/hotspot/HotSpotGraalRuntime;)V
            invokevirtual java.lang.Class.cast:(Ljava/lang/Object;)Ljava/lang/Object;
            areturn
         5: .line 52
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 2 // org.graalvm.compiler.hotspot.HotSpotGraalJVMCIServiceLocator locator
        end local 1 // java.lang.Class service
        end local 0 // org.graalvm.compiler.hotspot.HotSpotGraalJVMCIServiceLocator$Shared this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    6     0     this  Lorg/graalvm/compiler/hotspot/HotSpotGraalJVMCIServiceLocator$Shared;
            0    6     1  service  Ljava/lang/Class<TT;>;
            0    6     2  locator  Lorg/graalvm/compiler/hotspot/HotSpotGraalJVMCIServiceLocator;
    Signature: <T:Ljava/lang/Object;>(Ljava/lang/Class<TT;>;Lorg/graalvm/compiler/hotspot/HotSpotGraalJVMCIServiceLocator;)TT;
    MethodParameters:
         Name  Flags
      service  
      locator  

  void onCompilerCreation(org.graalvm.compiler.hotspot.HotSpotGraalCompiler);
    descriptor: (Lorg/graalvm/compiler/hotspot/HotSpotGraalCompiler;)V
    flags: (0x0000) 
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.graalvm.compiler.hotspot.HotSpotGraalJVMCIServiceLocator$Shared this
        start local 1 // org.graalvm.compiler.hotspot.HotSpotGraalCompiler compiler
         0: .line 61
            getstatic org.graalvm.compiler.hotspot.HotSpotGraalJVMCIServiceLocator$Shared.$assertionsDisabled:Z
            ifne 1
            aload 0 /* this */
            getfield org.graalvm.compiler.hotspot.HotSpotGraalJVMCIServiceLocator$Shared.graalRuntime:Lorg/graalvm/compiler/hotspot/HotSpotGraalRuntime;
            ifnull 1
            new java.lang.AssertionError
            dup
            ldc "only expect a single JVMCICompiler to be created"
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
         1: .line 62
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* compiler */
            invokevirtual org.graalvm.compiler.hotspot.HotSpotGraalCompiler.getGraalRuntime:()Lorg/graalvm/compiler/hotspot/HotSpotGraalRuntimeProvider;
            checkcast org.graalvm.compiler.hotspot.HotSpotGraalRuntime
            putfield org.graalvm.compiler.hotspot.HotSpotGraalJVMCIServiceLocator$Shared.graalRuntime:Lorg/graalvm/compiler/hotspot/HotSpotGraalRuntime;
         2: .line 63
            return
        end local 1 // org.graalvm.compiler.hotspot.HotSpotGraalCompiler compiler
        end local 0 // org.graalvm.compiler.hotspot.HotSpotGraalJVMCIServiceLocator$Shared this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    3     0      this  Lorg/graalvm/compiler/hotspot/HotSpotGraalJVMCIServiceLocator$Shared;
            0    3     1  compiler  Lorg/graalvm/compiler/hotspot/HotSpotGraalCompiler;
    MethodParameters:
          Name  Flags
      compiler  
}
SourceFile: "HotSpotGraalJVMCIServiceLocator.java"
NestHost: org.graalvm.compiler.hotspot.HotSpotGraalJVMCIServiceLocator
InnerClasses:
  private final Shared = org.graalvm.compiler.hotspot.HotSpotGraalJVMCIServiceLocator$Shared of org.graalvm.compiler.hotspot.HotSpotGraalJVMCIServiceLocator