final class jdk.vm.ci.hotspot.HotSpotMethodHandleAccessProvider$Internals
  minor version: 0
  major version: 59
  flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
  this_class: jdk.vm.ci.hotspot.HotSpotMethodHandleAccessProvider$Internals
  super_class: java.lang.Object
{
  final jdk.vm.ci.meta.ResolvedJavaType lambdaFormType;
    descriptor: Ljdk/vm/ci/meta/ResolvedJavaType;
    flags: (0x0010) ACC_FINAL

  final jdk.vm.ci.meta.ResolvedJavaField methodHandleFormField;
    descriptor: Ljdk/vm/ci/meta/ResolvedJavaField;
    flags: (0x0010) ACC_FINAL

  final jdk.vm.ci.meta.ResolvedJavaField lambdaFormVmentryField;
    descriptor: Ljdk/vm/ci/meta/ResolvedJavaField;
    flags: (0x0010) ACC_FINAL

  final jdk.vm.ci.hotspot.HotSpotResolvedJavaField callSiteTargetField;
    descriptor: Ljdk/vm/ci/hotspot/HotSpotResolvedJavaField;
    flags: (0x0010) ACC_FINAL

  final jdk.vm.ci.hotspot.HotSpotResolvedJavaField constantCallSiteFrozenField;
    descriptor: Ljdk/vm/ci/hotspot/HotSpotResolvedJavaField;
    flags: (0x0010) ACC_FINAL

  final jdk.vm.ci.meta.ResolvedJavaField methodField;
    descriptor: Ljdk/vm/ci/meta/ResolvedJavaField;
    flags: (0x0010) ACC_FINAL

  final jdk.vm.ci.hotspot.HotSpotResolvedJavaField vmtargetField;
    descriptor: Ljdk/vm/ci/hotspot/HotSpotResolvedJavaField;
    flags: (0x0010) ACC_FINAL

  private static volatile jdk.vm.ci.hotspot.HotSpotMethodHandleAccessProvider$Internals instance;
    descriptor: Ljdk/vm/ci/hotspot/HotSpotMethodHandleAccessProvider$Internals;
    flags: (0x004a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE
    RuntimeVisibleAnnotations: 
      jdk.vm.ci.common.NativeImageReinitialize()

  private static jdk.vm.ci.meta.ResolvedJavaField findFieldInClass(jdk.vm.ci.meta.ResolvedJavaType, java.lang.String, jdk.vm.ci.meta.ResolvedJavaType);
    descriptor: (Ljdk/vm/ci/meta/ResolvedJavaType;Ljava/lang/String;Ljdk/vm/ci/meta/ResolvedJavaType;)Ljdk/vm/ci/meta/ResolvedJavaField;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=8, args_size=3
        start local 0 // jdk.vm.ci.meta.ResolvedJavaType declaringType
        start local 1 // java.lang.String fieldName
        start local 2 // jdk.vm.ci.meta.ResolvedJavaType fieldType
         0: .line 71
            aload 0 /* declaringType */
            iconst_0
            invokeinterface jdk.vm.ci.meta.ResolvedJavaType.getInstanceFields:(Z)[Ljdk/vm/ci/meta/ResolvedJavaField;
            astore 3 /* fields */
        start local 3 // jdk.vm.ci.meta.ResolvedJavaField[] fields
         1: .line 72
            aload 3 /* fields */
            dup
            astore 7
            arraylength
            istore 6
            iconst_0
            istore 5
            goto 6
      StackMap locals: jdk.vm.ci.meta.ResolvedJavaType java.lang.String jdk.vm.ci.meta.ResolvedJavaType jdk.vm.ci.meta.ResolvedJavaField[] top int int jdk.vm.ci.meta.ResolvedJavaField[]
      StackMap stack:
         2: aload 7
            iload 5
            aaload
            astore 4 /* field */
        start local 4 // jdk.vm.ci.meta.ResolvedJavaField field
         3: .line 73
            aload 4 /* field */
            invokeinterface jdk.vm.ci.meta.ResolvedJavaField.getName:()Ljava/lang/String;
            aload 1 /* fieldName */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 5
            aload 4 /* field */
            invokeinterface jdk.vm.ci.meta.ResolvedJavaField.getType:()Ljdk/vm/ci/meta/JavaType;
            aload 2 /* fieldType */
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifeq 5
         4: .line 74
            aload 4 /* field */
            areturn
        end local 4 // jdk.vm.ci.meta.ResolvedJavaField field
         5: .line 72
      StackMap locals:
      StackMap stack:
            iinc 5 1
      StackMap locals:
      StackMap stack:
         6: iload 5
            iload 6
            if_icmplt 2
         7: .line 77
            new java.lang.NoSuchFieldError
            dup
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            aload 0 /* declaringType */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc "."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 1 /* fieldName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.NoSuchFieldError.<init>:(Ljava/lang/String;)V
            athrow
        end local 3 // jdk.vm.ci.meta.ResolvedJavaField[] fields
        end local 2 // jdk.vm.ci.meta.ResolvedJavaType fieldType
        end local 1 // java.lang.String fieldName
        end local 0 // jdk.vm.ci.meta.ResolvedJavaType declaringType
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    8     0  declaringType  Ljdk/vm/ci/meta/ResolvedJavaType;
            0    8     1      fieldName  Ljava/lang/String;
            0    8     2      fieldType  Ljdk/vm/ci/meta/ResolvedJavaType;
            1    8     3         fields  [Ljdk/vm/ci/meta/ResolvedJavaField;
            3    5     4          field  Ljdk/vm/ci/meta/ResolvedJavaField;
    MethodParameters:
               Name  Flags
      declaringType  
      fieldName      
      fieldType      

  private static jdk.vm.ci.meta.ResolvedJavaType resolveType(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljdk/vm/ci/meta/ResolvedJavaType;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // java.lang.String className
         0: .line 81
            invokestatic jdk.vm.ci.hotspot.HotSpotJVMCIRuntime.runtime:()Ljdk/vm/ci/hotspot/HotSpotJVMCIRuntime;
            aload 0 /* className */
            aconst_null
            iconst_1
            invokevirtual jdk.vm.ci.hotspot.HotSpotJVMCIRuntime.lookupTypeInternal:(Ljava/lang/String;Ljdk/vm/ci/hotspot/HotSpotResolvedObjectType;Z)Ljdk/vm/ci/meta/JavaType;
            checkcast jdk.vm.ci.meta.ResolvedJavaType
            areturn
        end local 0 // java.lang.String className
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    1     0  className  Ljava/lang/String;
    MethodParameters:
           Name  Flags
      className  

  private void <init>();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=7, args_size=1
        start local 0 // jdk.vm.ci.hotspot.HotSpotMethodHandleAccessProvider$Internals this
         0: .line 84
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 86
            ldc "Ljava/lang/invoke/MethodHandle;"
            invokestatic jdk.vm.ci.hotspot.HotSpotMethodHandleAccessProvider$Internals.resolveType:(Ljava/lang/String;)Ljdk/vm/ci/meta/ResolvedJavaType;
            astore 1 /* methodHandleType */
        start local 1 // jdk.vm.ci.meta.ResolvedJavaType methodHandleType
         2: .line 87
            ldc "Ljava/lang/invoke/MemberName;"
            invokestatic jdk.vm.ci.hotspot.HotSpotMethodHandleAccessProvider$Internals.resolveType:(Ljava/lang/String;)Ljdk/vm/ci/meta/ResolvedJavaType;
            astore 2 /* memberNameType */
        start local 2 // jdk.vm.ci.meta.ResolvedJavaType memberNameType
         3: .line 88
            aload 0 /* this */
            ldc "Ljava/lang/invoke/LambdaForm;"
            invokestatic jdk.vm.ci.hotspot.HotSpotMethodHandleAccessProvider$Internals.resolveType:(Ljava/lang/String;)Ljdk/vm/ci/meta/ResolvedJavaType;
            putfield jdk.vm.ci.hotspot.HotSpotMethodHandleAccessProvider$Internals.lambdaFormType:Ljdk/vm/ci/meta/ResolvedJavaType;
         4: .line 89
            aload 0 /* this */
            aload 1 /* methodHandleType */
            ldc "form"
            aload 0 /* this */
            getfield jdk.vm.ci.hotspot.HotSpotMethodHandleAccessProvider$Internals.lambdaFormType:Ljdk/vm/ci/meta/ResolvedJavaType;
            invokestatic jdk.vm.ci.hotspot.HotSpotMethodHandleAccessProvider$Internals.findFieldInClass:(Ljdk/vm/ci/meta/ResolvedJavaType;Ljava/lang/String;Ljdk/vm/ci/meta/ResolvedJavaType;)Ljdk/vm/ci/meta/ResolvedJavaField;
            putfield jdk.vm.ci.hotspot.HotSpotMethodHandleAccessProvider$Internals.methodHandleFormField:Ljdk/vm/ci/meta/ResolvedJavaField;
         5: .line 90
            aload 0 /* this */
            aload 0 /* this */
            getfield jdk.vm.ci.hotspot.HotSpotMethodHandleAccessProvider$Internals.lambdaFormType:Ljdk/vm/ci/meta/ResolvedJavaType;
            ldc "vmentry"
            aload 2 /* memberNameType */
            invokestatic jdk.vm.ci.hotspot.HotSpotMethodHandleAccessProvider$Internals.findFieldInClass:(Ljdk/vm/ci/meta/ResolvedJavaType;Ljava/lang/String;Ljdk/vm/ci/meta/ResolvedJavaType;)Ljdk/vm/ci/meta/ResolvedJavaField;
            putfield jdk.vm.ci.hotspot.HotSpotMethodHandleAccessProvider$Internals.lambdaFormVmentryField:Ljdk/vm/ci/meta/ResolvedJavaField;
         6: .line 92
            ldc "Ljava/lang/invoke/ResolvedMethodName;"
            invokestatic jdk.vm.ci.hotspot.HotSpotMethodHandleAccessProvider$Internals.resolveType:(Ljava/lang/String;)Ljdk/vm/ci/meta/ResolvedJavaType;
            astore 3 /* methodType */
        start local 3 // jdk.vm.ci.meta.ResolvedJavaType methodType
         7: .line 93
            aload 0 /* this */
            aload 2 /* memberNameType */
            ldc "method"
            aload 3 /* methodType */
            invokestatic jdk.vm.ci.hotspot.HotSpotMethodHandleAccessProvider$Internals.findFieldInClass:(Ljdk/vm/ci/meta/ResolvedJavaType;Ljava/lang/String;Ljdk/vm/ci/meta/ResolvedJavaType;)Ljdk/vm/ci/meta/ResolvedJavaField;
            putfield jdk.vm.ci.hotspot.HotSpotMethodHandleAccessProvider$Internals.methodField:Ljdk/vm/ci/meta/ResolvedJavaField;
         8: .line 94
            aload 0 /* this */
            aload 3 /* methodType */
            ldc "vmtarget"
            invokestatic jdk.vm.ci.hotspot.HotSpotJVMCIRuntime.getHostWordKind:()Ljdk/vm/ci/meta/JavaKind;
            invokevirtual jdk.vm.ci.meta.JavaKind.getTypeChar:()C
            invokestatic java.lang.Character.toString:(C)Ljava/lang/String;
            invokestatic jdk.vm.ci.hotspot.HotSpotMethodHandleAccessProvider$Internals.resolveType:(Ljava/lang/String;)Ljdk/vm/ci/meta/ResolvedJavaType;
            invokestatic jdk.vm.ci.hotspot.HotSpotMethodHandleAccessProvider$Internals.findFieldInClass:(Ljdk/vm/ci/meta/ResolvedJavaType;Ljava/lang/String;Ljdk/vm/ci/meta/ResolvedJavaType;)Ljdk/vm/ci/meta/ResolvedJavaField;
            checkcast jdk.vm.ci.hotspot.HotSpotResolvedJavaField
            putfield jdk.vm.ci.hotspot.HotSpotMethodHandleAccessProvider$Internals.vmtargetField:Ljdk/vm/ci/hotspot/HotSpotResolvedJavaField;
         9: .line 96
            ldc "Ljava/lang/invoke/CallSite;"
            invokestatic jdk.vm.ci.hotspot.HotSpotMethodHandleAccessProvider$Internals.resolveType:(Ljava/lang/String;)Ljdk/vm/ci/meta/ResolvedJavaType;
            astore 4 /* callSiteType */
        start local 4 // jdk.vm.ci.meta.ResolvedJavaType callSiteType
        10: .line 97
            aload 0 /* this */
            aload 4 /* callSiteType */
            ldc "target"
            aload 1 /* methodHandleType */
            invokestatic jdk.vm.ci.hotspot.HotSpotMethodHandleAccessProvider$Internals.findFieldInClass:(Ljdk/vm/ci/meta/ResolvedJavaType;Ljava/lang/String;Ljdk/vm/ci/meta/ResolvedJavaType;)Ljdk/vm/ci/meta/ResolvedJavaField;
            checkcast jdk.vm.ci.hotspot.HotSpotResolvedJavaField
            putfield jdk.vm.ci.hotspot.HotSpotMethodHandleAccessProvider$Internals.callSiteTargetField:Ljdk/vm/ci/hotspot/HotSpotResolvedJavaField;
        11: .line 98
            ldc "Ljava/lang/invoke/ConstantCallSite;"
            invokestatic jdk.vm.ci.hotspot.HotSpotMethodHandleAccessProvider$Internals.resolveType:(Ljava/lang/String;)Ljdk/vm/ci/meta/ResolvedJavaType;
            astore 5 /* constantCallSiteType */
        start local 5 // jdk.vm.ci.meta.ResolvedJavaType constantCallSiteType
        12: .line 99
            ldc "Z"
            invokestatic jdk.vm.ci.hotspot.HotSpotMethodHandleAccessProvider$Internals.resolveType:(Ljava/lang/String;)Ljdk/vm/ci/meta/ResolvedJavaType;
            astore 6 /* booleanType */
        start local 6 // jdk.vm.ci.meta.ResolvedJavaType booleanType
        13: .line 100
            aload 0 /* this */
            aload 5 /* constantCallSiteType */
            ldc "isFrozen"
            aload 6 /* booleanType */
            invokestatic jdk.vm.ci.hotspot.HotSpotMethodHandleAccessProvider$Internals.findFieldInClass:(Ljdk/vm/ci/meta/ResolvedJavaType;Ljava/lang/String;Ljdk/vm/ci/meta/ResolvedJavaType;)Ljdk/vm/ci/meta/ResolvedJavaField;
            checkcast jdk.vm.ci.hotspot.HotSpotResolvedJavaField
            putfield jdk.vm.ci.hotspot.HotSpotMethodHandleAccessProvider$Internals.constantCallSiteFrozenField:Ljdk/vm/ci/hotspot/HotSpotResolvedJavaField;
        end local 6 // jdk.vm.ci.meta.ResolvedJavaType booleanType
        end local 5 // jdk.vm.ci.meta.ResolvedJavaType constantCallSiteType
        end local 4 // jdk.vm.ci.meta.ResolvedJavaType callSiteType
        end local 3 // jdk.vm.ci.meta.ResolvedJavaType methodType
        end local 2 // jdk.vm.ci.meta.ResolvedJavaType memberNameType
        end local 1 // jdk.vm.ci.meta.ResolvedJavaType methodHandleType
        14: .line 101
            goto 17
      StackMap locals: jdk.vm.ci.hotspot.HotSpotMethodHandleAccessProvider$Internals
      StackMap stack: java.lang.Throwable
        15: astore 1 /* ex */
        start local 1 // java.lang.Throwable ex
        16: .line 102
            new jdk.vm.ci.common.JVMCIError
            dup
            aload 1 /* ex */
            invokespecial jdk.vm.ci.common.JVMCIError.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 1 // java.lang.Throwable ex
        17: .line 104
      StackMap locals:
      StackMap stack:
            return
        end local 0 // jdk.vm.ci.hotspot.HotSpotMethodHandleAccessProvider$Internals this
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0   18     0                  this  Ljdk/vm/ci/hotspot/HotSpotMethodHandleAccessProvider$Internals;
            2   14     1      methodHandleType  Ljdk/vm/ci/meta/ResolvedJavaType;
            3   14     2        memberNameType  Ljdk/vm/ci/meta/ResolvedJavaType;
            7   14     3            methodType  Ljdk/vm/ci/meta/ResolvedJavaType;
           10   14     4          callSiteType  Ljdk/vm/ci/meta/ResolvedJavaType;
           12   14     5  constantCallSiteType  Ljdk/vm/ci/meta/ResolvedJavaType;
           13   14     6           booleanType  Ljdk/vm/ci/meta/ResolvedJavaType;
           16   17     1                    ex  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           1    14      15  Class java.lang.Throwable

  static jdk.vm.ci.hotspot.HotSpotMethodHandleAccessProvider$Internals instance();
    descriptor: ()Ljdk/vm/ci/hotspot/HotSpotMethodHandleAccessProvider$Internals;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=2, args_size=0
         0: .line 112
            getstatic jdk.vm.ci.hotspot.HotSpotMethodHandleAccessProvider$Internals.instance:Ljdk/vm/ci/hotspot/HotSpotMethodHandleAccessProvider$Internals;
            astore 0 /* result */
        start local 0 // jdk.vm.ci.hotspot.HotSpotMethodHandleAccessProvider$Internals result
         1: .line 113
            aload 0 /* result */
            ifnonnull 10
         2: .line 114
            ldc Ljdk/vm/ci/hotspot/HotSpotMethodData$VMState;
            dup
            astore 1
            monitorenter
         3: .line 115
            getstatic jdk.vm.ci.hotspot.HotSpotMethodHandleAccessProvider$Internals.instance:Ljdk/vm/ci/hotspot/HotSpotMethodHandleAccessProvider$Internals;
            astore 0 /* result */
         4: .line 116
            aload 0 /* result */
            ifnonnull 6
         5: .line 117
            new jdk.vm.ci.hotspot.HotSpotMethodHandleAccessProvider$Internals
            dup
            invokespecial jdk.vm.ci.hotspot.HotSpotMethodHandleAccessProvider$Internals.<init>:()V
            dup
            astore 0 /* result */
            putstatic jdk.vm.ci.hotspot.HotSpotMethodHandleAccessProvider$Internals.instance:Ljdk/vm/ci/hotspot/HotSpotMethodHandleAccessProvider$Internals;
         6: .line 114
      StackMap locals: jdk.vm.ci.hotspot.HotSpotMethodHandleAccessProvider$Internals java.lang.Class
      StackMap stack:
            aload 1
            monitorexit
         7: goto 10
      StackMap locals:
      StackMap stack: java.lang.Throwable
         8: aload 1
            monitorexit
         9: athrow
        10: .line 121
      StackMap locals:
      StackMap stack:
            aload 0 /* result */
            areturn
        end local 0 // jdk.vm.ci.hotspot.HotSpotMethodHandleAccessProvider$Internals result
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            1   11     0  result  Ljdk/vm/ci/hotspot/HotSpotMethodHandleAccessProvider$Internals;
      Exception table:
        from    to  target  type
           3     7       8  any
           8     9       8  any
}
SourceFile: "HotSpotMethodHandleAccessProvider.java"
NestHost: jdk.vm.ci.hotspot.HotSpotMethodHandleAccessProvider
InnerClasses:
  final VMState = jdk.vm.ci.hotspot.HotSpotMethodData$VMState of jdk.vm.ci.hotspot.HotSpotMethodData
  final Internals = jdk.vm.ci.hotspot.HotSpotMethodHandleAccessProvider$Internals of jdk.vm.ci.hotspot.HotSpotMethodHandleAccessProvider