public final class com.oracle.svm.hosted.c.OffsetOfSupportImpl implements com.oracle.svm.core.c.struct.OffsetOf$Support
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: com.oracle.svm.hosted.c.OffsetOfSupportImpl
  super_class: java.lang.Object
{
  private final com.oracle.svm.hosted.c.NativeLibraries nativeLibraries;
    descriptor: Lcom/oracle/svm/hosted/c/NativeLibraries;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final jdk.vm.ci.meta.MetaAccessProvider metaAccess;
    descriptor: Ljdk/vm/ci/meta/MetaAccessProvider;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  public void <init>(com.oracle.svm.hosted.c.NativeLibraries, jdk.vm.ci.meta.MetaAccessProvider);
    descriptor: (Lcom/oracle/svm/hosted/c/NativeLibraries;Ljdk/vm/ci/meta/MetaAccessProvider;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // com.oracle.svm.hosted.c.OffsetOfSupportImpl this
        start local 1 // com.oracle.svm.hosted.c.NativeLibraries nativeLibraries
        start local 2 // jdk.vm.ci.meta.MetaAccessProvider metaAccess
         0: .line 43
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 44
            aload 0 /* this */
            aload 1 /* nativeLibraries */
            putfield com.oracle.svm.hosted.c.OffsetOfSupportImpl.nativeLibraries:Lcom/oracle/svm/hosted/c/NativeLibraries;
         2: .line 45
            aload 0 /* this */
            aload 2 /* metaAccess */
            putfield com.oracle.svm.hosted.c.OffsetOfSupportImpl.metaAccess:Ljdk/vm/ci/meta/MetaAccessProvider;
         3: .line 46
            return
        end local 2 // jdk.vm.ci.meta.MetaAccessProvider metaAccess
        end local 1 // com.oracle.svm.hosted.c.NativeLibraries nativeLibraries
        end local 0 // com.oracle.svm.hosted.c.OffsetOfSupportImpl this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    4     0             this  Lcom/oracle/svm/hosted/c/OffsetOfSupportImpl;
            0    4     1  nativeLibraries  Lcom/oracle/svm/hosted/c/NativeLibraries;
            0    4     2       metaAccess  Ljdk/vm/ci/meta/MetaAccessProvider;
    MethodParameters:
                 Name  Flags
      nativeLibraries  
      metaAccess       

  public int offsetOf(java.lang.Class<? extends org.graalvm.word.PointerBase>, java.lang.String);
    descriptor: (Ljava/lang/Class;Ljava/lang/String;)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=9, args_size=3
        start local 0 // com.oracle.svm.hosted.c.OffsetOfSupportImpl this
        start local 1 // java.lang.Class clazz
        start local 2 // java.lang.String fieldName
         0: .line 50
            aload 0 /* this */
            getfield com.oracle.svm.hosted.c.OffsetOfSupportImpl.metaAccess:Ljdk/vm/ci/meta/MetaAccessProvider;
            aload 1 /* clazz */
            invokeinterface jdk.vm.ci.meta.MetaAccessProvider.lookupJavaType:(Ljava/lang/Class;)Ljdk/vm/ci/meta/ResolvedJavaType;
            astore 3 /* type */
        start local 3 // jdk.vm.ci.meta.ResolvedJavaType type
         1: .line 51
            aload 0 /* this */
            getfield com.oracle.svm.hosted.c.OffsetOfSupportImpl.nativeLibraries:Lcom/oracle/svm/hosted/c/NativeLibraries;
            aload 3 /* type */
            invokevirtual com.oracle.svm.hosted.c.NativeLibraries.findElementInfo:(Ljava/lang/reflect/AnnotatedElement;)Lcom/oracle/svm/hosted/c/info/ElementInfo;
            astore 4 /* typeInfo */
        start local 4 // com.oracle.svm.hosted.c.info.ElementInfo typeInfo
         2: .line 52
            aload 4 /* typeInfo */
            instanceof com.oracle.svm.hosted.c.info.StructInfo
            new java.lang.StringBuilder
            dup
            ldc "Class parameter "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* type */
            iconst_1
            invokeinterface jdk.vm.ci.meta.ResolvedJavaType.toJavaName:(Z)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " of call to "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc Lorg/graalvm/nativeimage/c/struct/SizeOf;
            invokevirtual java.lang.Class.getSimpleName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " is not an annotated C struct"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic com.oracle.svm.core.util.VMError.guarantee:(ZLjava/lang/String;)V
         3: .line 53
            aload 4 /* typeInfo */
            checkcast com.oracle.svm.hosted.c.info.StructInfo
            astore 5 /* structInfo */
        start local 5 // com.oracle.svm.hosted.c.info.StructInfo structInfo
         4: .line 54
            aload 5 /* structInfo */
            invokevirtual com.oracle.svm.hosted.c.info.StructInfo.getChildren:()Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 7
            goto 10
      StackMap locals: com.oracle.svm.hosted.c.OffsetOfSupportImpl java.lang.Class java.lang.String jdk.vm.ci.meta.ResolvedJavaType com.oracle.svm.hosted.c.info.ElementInfo com.oracle.svm.hosted.c.info.StructInfo top java.util.Iterator
      StackMap stack:
         5: aload 7
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.oracle.svm.hosted.c.info.ElementInfo
            astore 6 /* element */
        start local 6 // com.oracle.svm.hosted.c.info.ElementInfo element
         6: .line 55
            aload 6 /* element */
            instanceof com.oracle.svm.hosted.c.info.StructFieldInfo
            ifeq 10
         7: .line 56
            aload 6 /* element */
            checkcast com.oracle.svm.hosted.c.info.StructFieldInfo
            astore 8 /* field */
        start local 8 // com.oracle.svm.hosted.c.info.StructFieldInfo field
         8: .line 57
            aload 8 /* field */
            invokevirtual com.oracle.svm.hosted.c.info.StructFieldInfo.getName:()Ljava/lang/String;
            aload 2 /* fieldName */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 10
         9: .line 58
            aload 8 /* field */
            invokevirtual com.oracle.svm.hosted.c.info.StructFieldInfo.getOffsetInfo:()Lcom/oracle/svm/hosted/c/info/PropertyInfo;
            invokevirtual com.oracle.svm.hosted.c.info.PropertyInfo.getProperty:()Ljava/lang/Object;
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
            ireturn
        end local 8 // com.oracle.svm.hosted.c.info.StructFieldInfo field
        end local 6 // com.oracle.svm.hosted.c.info.ElementInfo element
        10: .line 54
      StackMap locals:
      StackMap stack:
            aload 7
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 5
        11: .line 62
            new java.lang.StringBuilder
            dup
            ldc "Field "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* fieldName */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " of C struct "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 3 /* type */
            iconst_1
            invokeinterface jdk.vm.ci.meta.ResolvedJavaType.toJavaName:(Z)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " was not found"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic com.oracle.svm.core.util.VMError.shouldNotReachHere:(Ljava/lang/String;)Ljava/lang/RuntimeException;
            athrow
        end local 5 // com.oracle.svm.hosted.c.info.StructInfo structInfo
        end local 4 // com.oracle.svm.hosted.c.info.ElementInfo typeInfo
        end local 3 // jdk.vm.ci.meta.ResolvedJavaType type
        end local 2 // java.lang.String fieldName
        end local 1 // java.lang.Class clazz
        end local 0 // com.oracle.svm.hosted.c.OffsetOfSupportImpl this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   12     0        this  Lcom/oracle/svm/hosted/c/OffsetOfSupportImpl;
            0   12     1       clazz  Ljava/lang/Class<+Lorg/graalvm/word/PointerBase;>;
            0   12     2   fieldName  Ljava/lang/String;
            1   12     3        type  Ljdk/vm/ci/meta/ResolvedJavaType;
            2   12     4    typeInfo  Lcom/oracle/svm/hosted/c/info/ElementInfo;
            4   12     5  structInfo  Lcom/oracle/svm/hosted/c/info/StructInfo;
            6   10     6     element  Lcom/oracle/svm/hosted/c/info/ElementInfo;
            8   10     8       field  Lcom/oracle/svm/hosted/c/info/StructFieldInfo;
    Signature: (Ljava/lang/Class<+Lorg/graalvm/word/PointerBase;>;Ljava/lang/String;)I
    MethodParameters:
           Name  Flags
      clazz      
      fieldName  
}
SourceFile: "OffsetOfSupportImpl.java"
InnerClasses:
  public abstract Support = com.oracle.svm.core.c.struct.OffsetOf$Support of com.oracle.svm.core.c.struct.OffsetOf