public final class com.oracle.svm.hosted.c.query.RawStructureLayoutPlanner extends com.oracle.svm.hosted.c.query.NativeInfoTreeVisitor
minor version: 0
major version: 59
flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
this_class: com.oracle.svm.hosted.c.query.RawStructureLayoutPlanner
super_class: com.oracle.svm.hosted.c.query.NativeInfoTreeVisitor
{
static final boolean $assertionsDisabled;
descriptor: Z
flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC
private static volatile int[] $SWITCH_TABLE$com$oracle$svm$hosted$c$info$AccessorInfo$AccessorKind;
descriptor: [I
flags: (0x104a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE, ACC_SYNTHETIC
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: ldc Lcom/oracle/svm/hosted/c/query/RawStructureLayoutPlanner;
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 com.oracle.svm.hosted.c.query.RawStructureLayoutPlanner.$assertionsDisabled:Z
return
LocalVariableTable:
Start End Slot Name Signature
private void <init>(com.oracle.svm.hosted.c.NativeLibraries);
descriptor: (Lcom/oracle/svm/hosted/c/NativeLibraries;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokespecial com.oracle.svm.hosted.c.query.NativeInfoTreeVisitor.<init>:(Lcom/oracle/svm/hosted/c/NativeLibraries;)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/oracle/svm/hosted/c/query/RawStructureLayoutPlanner;
0 2 1 nativeLibs Lcom/oracle/svm/hosted/c/NativeLibraries;
MethodParameters:
Name Flags
nativeLibs
public static void plan(com.oracle.svm.hosted.c.NativeLibraries, com.oracle.svm.hosted.c.info.NativeCodeInfo);
descriptor: (Lcom/oracle/svm/hosted/c/NativeLibraries;Lcom/oracle/svm/hosted/c/info/NativeCodeInfo;)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual com.oracle.svm.hosted.c.info.NativeCodeInfo.isBuiltin:()Z
ifne 2
1: return
2: StackMap locals:
StackMap stack:
new com.oracle.svm.hosted.c.query.RawStructureLayoutPlanner
dup
aload 0
invokespecial com.oracle.svm.hosted.c.query.RawStructureLayoutPlanner.<init>:(Lcom/oracle/svm/hosted/c/NativeLibraries;)V
astore 2
start local 2 3: aload 1
aload 2
invokevirtual com.oracle.svm.hosted.c.info.NativeCodeInfo.accept:(Lcom/oracle/svm/hosted/c/info/InfoTreeVisitor;)V
4: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 nativeLibs Lcom/oracle/svm/hosted/c/NativeLibraries;
0 5 1 nativeCodeInfo Lcom/oracle/svm/hosted/c/info/NativeCodeInfo;
3 5 2 planner Lcom/oracle/svm/hosted/c/query/RawStructureLayoutPlanner;
MethodParameters:
Name Flags
nativeLibs
nativeCodeInfo
protected void visitRawStructureInfo(com.oracle.svm.hosted.c.info.RawStructureInfo);
descriptor: (Lcom/oracle/svm/hosted/c/info/RawStructureInfo;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=7, locals=9, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual com.oracle.svm.hosted.c.info.RawStructureInfo.isPlanned:()Z
ifeq 2
1: return
2: StackMap locals:
StackMap stack:
aload 1
invokevirtual com.oracle.svm.hosted.c.info.RawStructureInfo.getAnnotatedElement:()Ljdk/vm/ci/meta/ResolvedJavaType;
astore 2
start local 2 3: aload 2
invokeinterface jdk.vm.ci.meta.ResolvedJavaType.getInterfaces:()[Ljdk/vm/ci/meta/ResolvedJavaType;
dup
astore 6
arraylength
istore 5
iconst_0
istore 4
goto 19
StackMap locals: com.oracle.svm.hosted.c.query.RawStructureLayoutPlanner com.oracle.svm.hosted.c.info.RawStructureInfo jdk.vm.ci.meta.ResolvedJavaType top int int jdk.vm.ci.meta.ResolvedJavaType[]
StackMap stack:
4: aload 6
iload 4
aaload
astore 3
start local 3 5: aload 0
getfield com.oracle.svm.hosted.c.query.RawStructureLayoutPlanner.nativeLibs:Lcom/oracle/svm/hosted/c/NativeLibraries;
aload 3
invokevirtual com.oracle.svm.hosted.c.NativeLibraries.isPointerBase:(Ljdk/vm/ci/meta/ResolvedJavaType;)Z
ifne 7
6: ldc "Type %s must not implement %s"
iconst_2
anewarray java.lang.Object
dup
iconst_0
aload 2
aastore
dup
iconst_1
aload 3
aastore
invokestatic com.oracle.svm.core.util.UserError.abort:(Ljava/lang/String;[Ljava/lang/Object;)Lcom/oracle/svm/core/util/UserError$UserException;
athrow
7: StackMap locals: com.oracle.svm.hosted.c.query.RawStructureLayoutPlanner com.oracle.svm.hosted.c.info.RawStructureInfo jdk.vm.ci.meta.ResolvedJavaType jdk.vm.ci.meta.ResolvedJavaType int int jdk.vm.ci.meta.ResolvedJavaType[]
StackMap stack:
aload 3
aload 0
getfield com.oracle.svm.hosted.c.query.RawStructureLayoutPlanner.nativeLibs:Lcom/oracle/svm/hosted/c/NativeLibraries;
invokevirtual com.oracle.svm.hosted.c.NativeLibraries.getPointerBaseType:()Ljdk/vm/ci/meta/ResolvedJavaType;
invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
ifeq 9
8: goto 18
9: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.svm.hosted.c.query.RawStructureLayoutPlanner.nativeLibs:Lcom/oracle/svm/hosted/c/NativeLibraries;
aload 3
invokevirtual com.oracle.svm.hosted.c.NativeLibraries.findElementInfo:(Ljava/lang/reflect/AnnotatedElement;)Lcom/oracle/svm/hosted/c/info/ElementInfo;
astore 7
start local 7 10: aload 7
instanceof com.oracle.svm.hosted.c.info.RawStructureInfo
ifne 12
11: new com.oracle.svm.hosted.c.CInterfaceError
dup
new java.lang.StringBuilder
dup
ldc "Illegal super type "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 3
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc " found"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 2
aastore
invokespecial com.oracle.svm.hosted.c.CInterfaceError.<init>:(Ljava/lang/String;[Ljava/lang/Object;)V
invokevirtual com.oracle.svm.hosted.c.CInterfaceError.getMessage:()Ljava/lang/String;
iconst_0
anewarray java.lang.Object
invokestatic com.oracle.svm.core.util.UserError.abort:(Ljava/lang/String;[Ljava/lang/Object;)Lcom/oracle/svm/core/util/UserError$UserException;
athrow
12: StackMap locals: com.oracle.svm.hosted.c.info.ElementInfo
StackMap stack:
aload 7
checkcast com.oracle.svm.hosted.c.info.RawStructureInfo
astore 8
start local 8 13: aload 8
aload 0
invokevirtual com.oracle.svm.hosted.c.info.RawStructureInfo.accept:(Lcom/oracle/svm/hosted/c/info/InfoTreeVisitor;)V
14: getstatic com.oracle.svm.hosted.c.query.RawStructureLayoutPlanner.$assertionsDisabled:Z
ifne 15
aload 8
invokevirtual com.oracle.svm.hosted.c.info.RawStructureInfo.isPlanned:()Z
ifne 15
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
15: StackMap locals: com.oracle.svm.hosted.c.info.RawStructureInfo
StackMap stack:
aload 1
invokevirtual com.oracle.svm.hosted.c.info.RawStructureInfo.getParentInfo:()Lcom/oracle/svm/hosted/c/info/RawStructureInfo;
ifnull 17
16: new com.oracle.svm.hosted.c.CInterfaceError
dup
ldc "Only single inheritance of RawStructure types is supported"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 2
aastore
invokespecial com.oracle.svm.hosted.c.CInterfaceError.<init>:(Ljava/lang/String;[Ljava/lang/Object;)V
invokevirtual com.oracle.svm.hosted.c.CInterfaceError.getMessage:()Ljava/lang/String;
iconst_0
anewarray java.lang.Object
invokestatic com.oracle.svm.core.util.UserError.abort:(Ljava/lang/String;[Ljava/lang/Object;)Lcom/oracle/svm/core/util/UserError$UserException;
athrow
17: StackMap locals:
StackMap stack:
aload 1
aload 8
invokevirtual com.oracle.svm.hosted.c.info.RawStructureInfo.setParentInfo:(Lcom/oracle/svm/hosted/c/info/RawStructureInfo;)V
end local 8 end local 7 end local 3 18: StackMap locals: com.oracle.svm.hosted.c.query.RawStructureLayoutPlanner com.oracle.svm.hosted.c.info.RawStructureInfo jdk.vm.ci.meta.ResolvedJavaType top int int jdk.vm.ci.meta.ResolvedJavaType[]
StackMap stack:
iinc 4 1
StackMap locals:
StackMap stack:
19: iload 4
iload 5
if_icmplt 4
20: new java.util.ArrayList
dup
aload 1
invokevirtual com.oracle.svm.hosted.c.info.RawStructureInfo.getChildren:()Ljava/util/List;
invokespecial java.util.ArrayList.<init>:(Ljava/util/Collection;)V
invokevirtual java.util.ArrayList.iterator:()Ljava/util/Iterator;
astore 4
goto 29
StackMap locals: com.oracle.svm.hosted.c.query.RawStructureLayoutPlanner com.oracle.svm.hosted.c.info.RawStructureInfo jdk.vm.ci.meta.ResolvedJavaType top java.util.Iterator
StackMap stack:
21: aload 4
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.oracle.svm.hosted.c.info.ElementInfo
astore 3
start local 3 22: aload 3
instanceof com.oracle.svm.hosted.c.info.StructFieldInfo
ifeq 29
23: aload 3
checkcast com.oracle.svm.hosted.c.info.StructFieldInfo
astore 5
start local 5 24: aload 0
aload 5
aload 1
invokevirtual com.oracle.svm.hosted.c.info.RawStructureInfo.getParentInfo:()Lcom/oracle/svm/hosted/c/info/RawStructureInfo;
invokevirtual com.oracle.svm.hosted.c.query.RawStructureLayoutPlanner.findParentFieldInfo:(Lcom/oracle/svm/hosted/c/info/StructFieldInfo;Lcom/oracle/svm/hosted/c/info/RawStructureInfo;)Lcom/oracle/svm/hosted/c/info/StructFieldInfo;
astore 6
start local 6 25: aload 6
ifnull 28
26: aload 5
aload 6
invokevirtual com.oracle.svm.hosted.c.info.StructFieldInfo.mergeChildrenAndDelete:(Lcom/oracle/svm/hosted/c/info/ElementInfo;)V
27: goto 29
28: StackMap locals: com.oracle.svm.hosted.c.query.RawStructureLayoutPlanner com.oracle.svm.hosted.c.info.RawStructureInfo jdk.vm.ci.meta.ResolvedJavaType com.oracle.svm.hosted.c.info.ElementInfo java.util.Iterator com.oracle.svm.hosted.c.info.StructFieldInfo com.oracle.svm.hosted.c.info.StructFieldInfo
StackMap stack:
aload 0
aload 5
invokevirtual com.oracle.svm.hosted.c.query.RawStructureLayoutPlanner.computeSize:(Lcom/oracle/svm/hosted/c/info/StructFieldInfo;)V
end local 6 end local 5 end local 3 29: StackMap locals: com.oracle.svm.hosted.c.query.RawStructureLayoutPlanner com.oracle.svm.hosted.c.info.RawStructureInfo jdk.vm.ci.meta.ResolvedJavaType top java.util.Iterator
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 21
30: aload 0
aload 1
invokevirtual com.oracle.svm.hosted.c.query.RawStructureLayoutPlanner.planLayout:(Lcom/oracle/svm/hosted/c/info/RawStructureInfo;)V
31: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 32 0 this Lcom/oracle/svm/hosted/c/query/RawStructureLayoutPlanner;
0 32 1 info Lcom/oracle/svm/hosted/c/info/RawStructureInfo;
3 32 2 type Ljdk/vm/ci/meta/ResolvedJavaType;
5 18 3 t Ljdk/vm/ci/meta/ResolvedJavaType;
10 18 7 einfo Lcom/oracle/svm/hosted/c/info/ElementInfo;
13 18 8 rinfo Lcom/oracle/svm/hosted/c/info/RawStructureInfo;
22 29 3 child Lcom/oracle/svm/hosted/c/info/ElementInfo;
24 29 5 fieldInfo Lcom/oracle/svm/hosted/c/info/StructFieldInfo;
25 29 6 parentFieldInfo Lcom/oracle/svm/hosted/c/info/StructFieldInfo;
MethodParameters:
Name Flags
info
private void computeSize(com.oracle.svm.hosted.c.info.StructFieldInfo);
descriptor: (Lcom/oracle/svm/hosted/c/info/StructFieldInfo;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=5, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual com.oracle.svm.hosted.c.info.StructFieldInfo.isObject:()Z
ifeq 3
1: invokestatic com.oracle.svm.core.config.ConfigurationValues.getObjectLayout:()Lcom/oracle/svm/core/config/ObjectLayout;
invokevirtual com.oracle.svm.core.config.ObjectLayout.getReferenceSize:()I
istore 2
start local 2 2: goto 15
end local 2 3: StackMap locals:
StackMap stack:
aload 1
invokevirtual com.oracle.svm.hosted.c.info.StructFieldInfo.getAccessorInfoWithSize:()Lcom/oracle/svm/hosted/c/info/AccessorInfo;
astore 4
start local 4 4: invokestatic com.oracle.svm.hosted.c.query.RawStructureLayoutPlanner.$SWITCH_TABLE$com$oracle$svm$hosted$c$info$AccessorInfo$AccessorKind:()[I
aload 4
invokevirtual com.oracle.svm.hosted.c.info.AccessorInfo.getAccessorKind:()Lcom/oracle/svm/hosted/c/info/AccessorInfo$AccessorKind;
invokevirtual com.oracle.svm.hosted.c.info.AccessorInfo$AccessorKind.ordinal:()I
iaload
tableswitch { // 1 - 2
1: 5
2: 7
default: 9
}
5: StackMap locals: com.oracle.svm.hosted.c.query.RawStructureLayoutPlanner com.oracle.svm.hosted.c.info.StructFieldInfo top top com.oracle.svm.hosted.c.info.AccessorInfo
StackMap stack:
aload 4
invokevirtual com.oracle.svm.hosted.c.info.AccessorInfo.getReturnType:()Ljdk/vm/ci/meta/ResolvedJavaType;
astore 3
start local 3 6: goto 10
end local 3 7: StackMap locals:
StackMap stack:
aload 4
invokevirtual com.oracle.svm.hosted.c.info.AccessorInfo.getValueParameterType:()Ljdk/vm/ci/meta/ResolvedJavaType;
astore 3
start local 3 8: goto 10
end local 3 9: StackMap locals:
StackMap stack:
new java.lang.StringBuilder
dup
ldc "Unexpected accessor kind "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 4
invokevirtual com.oracle.svm.hosted.c.info.AccessorInfo.getAccessorKind:()Lcom/oracle/svm/hosted/c/info/AccessorInfo$AccessorKind;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)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
start local 3 10: StackMap locals: com.oracle.svm.hosted.c.query.RawStructureLayoutPlanner com.oracle.svm.hosted.c.info.StructFieldInfo top jdk.vm.ci.meta.ResolvedJavaType com.oracle.svm.hosted.c.info.AccessorInfo
StackMap stack:
aload 1
invokevirtual com.oracle.svm.hosted.c.info.StructFieldInfo.getKind:()Lcom/oracle/svm/hosted/c/info/SizableInfo$ElementKind;
getstatic com.oracle.svm.hosted.c.info.SizableInfo$ElementKind.INTEGER:Lcom/oracle/svm/hosted/c/info/SizableInfo$ElementKind;
if_acmpne 14
11: aload 1
invokevirtual com.oracle.svm.hosted.c.info.StructFieldInfo.getSignednessInfo:()Lcom/oracle/svm/hosted/c/info/PropertyInfo;
aload 0
aload 3
invokevirtual com.oracle.svm.hosted.c.query.RawStructureLayoutPlanner.isSigned:(Ljdk/vm/ci/meta/ResolvedJavaType;)Z
ifeq 12
getstatic com.oracle.svm.hosted.c.info.SizableInfo$SignednessValue.SIGNED:Lcom/oracle/svm/hosted/c/info/SizableInfo$SignednessValue;
goto 13
StackMap locals:
StackMap stack: com.oracle.svm.hosted.c.info.PropertyInfo
12: getstatic com.oracle.svm.hosted.c.info.SizableInfo$SignednessValue.UNSIGNED:Lcom/oracle/svm/hosted/c/info/SizableInfo$SignednessValue;
StackMap locals: com.oracle.svm.hosted.c.query.RawStructureLayoutPlanner com.oracle.svm.hosted.c.info.StructFieldInfo top jdk.vm.ci.meta.ResolvedJavaType com.oracle.svm.hosted.c.info.AccessorInfo
StackMap stack: com.oracle.svm.hosted.c.info.PropertyInfo com.oracle.svm.hosted.c.info.SizableInfo$SignednessValue
13: invokevirtual com.oracle.svm.hosted.c.info.PropertyInfo.setProperty:(Ljava/lang/Object;)V
14: StackMap locals:
StackMap stack:
aload 0
aload 3
invokevirtual com.oracle.svm.hosted.c.query.RawStructureLayoutPlanner.getSizeInBytes:(Ljdk/vm/ci/meta/ResolvedJavaType;)I
istore 2
end local 4 end local 3 start local 2 15: StackMap locals: com.oracle.svm.hosted.c.query.RawStructureLayoutPlanner com.oracle.svm.hosted.c.info.StructFieldInfo int
StackMap stack:
aload 1
invokevirtual com.oracle.svm.hosted.c.info.StructFieldInfo.getSizeInfo:()Lcom/oracle/svm/hosted/c/info/PropertyInfo;
iload 2
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokevirtual com.oracle.svm.hosted.c.info.PropertyInfo.setProperty:(Ljava/lang/Object;)V
16: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 17 0 this Lcom/oracle/svm/hosted/c/query/RawStructureLayoutPlanner;
0 17 1 info Lcom/oracle/svm/hosted/c/info/StructFieldInfo;
2 3 2 declaredSize I
15 17 2 declaredSize I
6 7 3 fieldType Ljdk/vm/ci/meta/ResolvedJavaType;
8 9 3 fieldType Ljdk/vm/ci/meta/ResolvedJavaType;
10 15 3 fieldType Ljdk/vm/ci/meta/ResolvedJavaType;
4 15 4 accessor Lcom/oracle/svm/hosted/c/info/AccessorInfo;
MethodParameters:
Name Flags
info
private void planLayout(com.oracle.svm.hosted.c.info.RawStructureInfo);
descriptor: (Lcom/oracle/svm/hosted/c/info/RawStructureInfo;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=7, locals=8, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual com.oracle.svm.hosted.c.info.RawStructureInfo.getParentInfo:()Lcom/oracle/svm/hosted/c/info/RawStructureInfo;
ifnull 1
aload 1
invokevirtual com.oracle.svm.hosted.c.info.RawStructureInfo.getParentInfo:()Lcom/oracle/svm/hosted/c/info/RawStructureInfo;
invokevirtual com.oracle.svm.hosted.c.info.RawStructureInfo.getSizeInfo:()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
goto 2
StackMap locals:
StackMap stack:
1: iconst_0
StackMap locals:
StackMap stack: int
2: istore 2
start local 2 3: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 3
start local 3 4: aload 1
invokevirtual com.oracle.svm.hosted.c.info.RawStructureInfo.getChildren:()Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 5
goto 11
StackMap locals: com.oracle.svm.hosted.c.query.RawStructureLayoutPlanner com.oracle.svm.hosted.c.info.RawStructureInfo int java.util.List top java.util.Iterator
StackMap stack:
5: aload 5
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.oracle.svm.hosted.c.info.ElementInfo
astore 4
start local 4 6: aload 4
instanceof com.oracle.svm.hosted.c.info.StructFieldInfo
ifeq 9
7: aload 3
aload 4
checkcast com.oracle.svm.hosted.c.info.StructFieldInfo
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
8: goto 11
StackMap locals: com.oracle.svm.hosted.c.query.RawStructureLayoutPlanner com.oracle.svm.hosted.c.info.RawStructureInfo int java.util.List com.oracle.svm.hosted.c.info.ElementInfo java.util.Iterator
StackMap stack:
9: aload 4
instanceof com.oracle.svm.hosted.c.info.StructBitfieldInfo
ifeq 11
10: ldc "StructBitfield is currently not supported by RawStructures!"
iconst_0
anewarray java.lang.Object
invokestatic com.oracle.svm.core.util.UserError.abort:(Ljava/lang/String;[Ljava/lang/Object;)Lcom/oracle/svm/core/util/UserError$UserException;
athrow
end local 4 11: StackMap locals: com.oracle.svm.hosted.c.query.RawStructureLayoutPlanner com.oracle.svm.hosted.c.info.RawStructureInfo int java.util.List top java.util.Iterator
StackMap stack:
aload 5
invokeinterface java.util.Iterator.hasNext:()Z
ifne 5
12: aload 3
invokedynamic compare()Ljava/util/Comparator;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(Ljava/lang/Object;Ljava/lang/Object;)I
com/oracle/svm/hosted/c/query/RawStructureLayoutPlanner.lambda$0(Lcom/oracle/svm/hosted/c/info/StructFieldInfo;Lcom/oracle/svm/hosted/c/info/StructFieldInfo;)I (6)
(Lcom/oracle/svm/hosted/c/info/StructFieldInfo;Lcom/oracle/svm/hosted/c/info/StructFieldInfo;)I
invokeinterface java.util.List.sort:(Ljava/util/Comparator;)V
13: aload 3
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 5
goto 21
StackMap locals:
StackMap stack:
14: aload 5
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.oracle.svm.hosted.c.info.StructFieldInfo
astore 4
start local 4 15: getstatic com.oracle.svm.hosted.c.query.RawStructureLayoutPlanner.$assertionsDisabled:Z
ifne 16
aload 0
aload 4
aload 1
invokevirtual com.oracle.svm.hosted.c.info.RawStructureInfo.getParentInfo:()Lcom/oracle/svm/hosted/c/info/RawStructureInfo;
invokevirtual com.oracle.svm.hosted.c.query.RawStructureLayoutPlanner.findParentFieldInfo:(Lcom/oracle/svm/hosted/c/info/StructFieldInfo;Lcom/oracle/svm/hosted/c/info/RawStructureInfo;)Lcom/oracle/svm/hosted/c/info/StructFieldInfo;
ifnull 16
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
16: StackMap locals: com.oracle.svm.hosted.c.query.RawStructureLayoutPlanner com.oracle.svm.hosted.c.info.RawStructureInfo int java.util.List com.oracle.svm.hosted.c.info.StructFieldInfo java.util.Iterator
StackMap stack:
aload 4
invokevirtual com.oracle.svm.hosted.c.info.StructFieldInfo.getSizeInfo:()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
istore 6
start local 6 17: iload 2
iload 6
invokestatic com.oracle.svm.hosted.c.query.RawStructureLayoutPlanner.alignOffset:(II)I
istore 2
18: getstatic com.oracle.svm.hosted.c.query.RawStructureLayoutPlanner.$assertionsDisabled:Z
ifne 19
iload 2
iload 6
irem
ifeq 19
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
19: StackMap locals: int
StackMap stack:
aload 4
invokevirtual com.oracle.svm.hosted.c.info.StructFieldInfo.getOffsetInfo:()Lcom/oracle/svm/hosted/c/info/PropertyInfo;
iload 2
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokevirtual com.oracle.svm.hosted.c.info.PropertyInfo.setProperty:(Ljava/lang/Object;)V
20: iload 2
iload 6
iadd
istore 2
end local 6 end local 4 21: StackMap locals: com.oracle.svm.hosted.c.query.RawStructureLayoutPlanner com.oracle.svm.hosted.c.info.RawStructureInfo int java.util.List top java.util.Iterator
StackMap stack:
aload 5
invokeinterface java.util.Iterator.hasNext:()Z
ifne 14
22: aload 1
invokevirtual com.oracle.svm.hosted.c.info.RawStructureInfo.getAnnotatedElement:()Ljdk/vm/ci/meta/ResolvedJavaType;
ldc Lorg/graalvm/nativeimage/c/struct/RawStructure;
invokeinterface jdk.vm.ci.meta.ResolvedJavaType.getAnnotation:(Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
checkcast org.graalvm.nativeimage.c.struct.RawStructure
invokeinterface org.graalvm.nativeimage.c.struct.RawStructure.sizeProvider:()Ljava/lang/Class;
astore 5
start local 5 23: aload 5
ldc Ljava/util/function/IntUnaryOperator;
if_acmpne 26
24: iload 2
istore 4
start local 4 25: goto 37
end local 4 26: StackMap locals: com.oracle.svm.hosted.c.query.RawStructureLayoutPlanner com.oracle.svm.hosted.c.info.RawStructureInfo int java.util.List top java.lang.Class
StackMap stack:
aload 5
invokestatic com.oracle.svm.util.ReflectionUtil.newInstance:(Ljava/lang/Class;)Ljava/lang/Object;
checkcast java.util.function.IntUnaryOperator
astore 6
start local 6 27: goto 32
end local 6 StackMap locals:
StackMap stack: com.oracle.svm.util.ReflectionUtil$ReflectionUtilError
28: astore 7
start local 7 29: aload 7
invokevirtual com.oracle.svm.util.ReflectionUtil$ReflectionUtilError.getCause:()Ljava/lang/Throwable;
ldc "The size provider of @%s %s cannot be instantiated via no-argument constructor"
iconst_2
anewarray java.lang.Object
dup
iconst_0
30: ldc Lorg/graalvm/nativeimage/c/struct/RawStructure;
invokevirtual java.lang.Class.getSimpleName:()Ljava/lang/String;
aastore
dup
iconst_1
aload 1
invokevirtual com.oracle.svm.hosted.c.info.RawStructureInfo.getAnnotatedElement:()Ljdk/vm/ci/meta/ResolvedJavaType;
iconst_1
invokeinterface jdk.vm.ci.meta.ResolvedJavaType.toJavaName:(Z)Ljava/lang/String;
aastore
31: invokestatic com.oracle.svm.core.util.UserError.abort:(Ljava/lang/Throwable;Ljava/lang/String;[Ljava/lang/Object;)Lcom/oracle/svm/core/util/UserError$UserException;
athrow
end local 7 start local 6 32: StackMap locals: java.util.function.IntUnaryOperator
StackMap stack:
aload 6
iload 2
invokeinterface java.util.function.IntUnaryOperator.applyAsInt:(I)I
istore 4
start local 4 33: iload 4
iload 2
if_icmpge 37
34: ldc "The size provider of @%s %s computed size %d which is smaller than the minimum size of %d"
iconst_4
anewarray java.lang.Object
dup
iconst_0
35: ldc Lorg/graalvm/nativeimage/c/struct/RawStructure;
invokevirtual java.lang.Class.getSimpleName:()Ljava/lang/String;
aastore
dup
iconst_1
aload 1
invokevirtual com.oracle.svm.hosted.c.info.RawStructureInfo.getAnnotatedElement:()Ljdk/vm/ci/meta/ResolvedJavaType;
iconst_1
invokeinterface jdk.vm.ci.meta.ResolvedJavaType.toJavaName:(Z)Ljava/lang/String;
aastore
dup
iconst_2
iload 4
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
dup
iconst_3
iload 2
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
36: invokestatic com.oracle.svm.core.util.UserError.abort:(Ljava/lang/String;[Ljava/lang/Object;)Lcom/oracle/svm/core/util/UserError$UserException;
athrow
end local 6 37: StackMap locals: com.oracle.svm.hosted.c.query.RawStructureLayoutPlanner com.oracle.svm.hosted.c.info.RawStructureInfo int java.util.List int java.lang.Class
StackMap stack:
aload 1
invokevirtual com.oracle.svm.hosted.c.info.RawStructureInfo.getSizeInfo:()Lcom/oracle/svm/hosted/c/info/PropertyInfo;
iload 4
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokevirtual com.oracle.svm.hosted.c.info.PropertyInfo.setProperty:(Ljava/lang/Object;)V
38: aload 1
invokevirtual com.oracle.svm.hosted.c.info.RawStructureInfo.setPlanned:()V
39: return
end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 40 0 this Lcom/oracle/svm/hosted/c/query/RawStructureLayoutPlanner;
0 40 1 info Lcom/oracle/svm/hosted/c/info/RawStructureInfo;
3 40 2 currentOffset I
4 40 3 fields Ljava/util/List<Lcom/oracle/svm/hosted/c/info/StructFieldInfo;>;
6 11 4 child Lcom/oracle/svm/hosted/c/info/ElementInfo;
15 21 4 finfo Lcom/oracle/svm/hosted/c/info/StructFieldInfo;
17 21 6 fieldSize I
25 26 4 totalSize I
33 40 4 totalSize I
23 40 5 sizeProviderClass Ljava/lang/Class<+Ljava/util/function/IntUnaryOperator;>;
27 28 6 sizeProvider Ljava/util/function/IntUnaryOperator;
32 37 6 sizeProvider Ljava/util/function/IntUnaryOperator;
29 32 7 ex Lcom/oracle/svm/util/ReflectionUtil$ReflectionUtilError;
Exception table:
from to target type
26 27 28 Class com.oracle.svm.util.ReflectionUtil$ReflectionUtilError
MethodParameters:
Name Flags
info
private com.oracle.svm.hosted.c.info.StructFieldInfo findParentFieldInfo(com.oracle.svm.hosted.c.info.StructFieldInfo, com.oracle.svm.hosted.c.info.RawStructureInfo);
descriptor: (Lcom/oracle/svm/hosted/c/info/StructFieldInfo;Lcom/oracle/svm/hosted/c/info/RawStructureInfo;)Lcom/oracle/svm/hosted/c/info/StructFieldInfo;
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=7, args_size=3
start local 0 start local 1 start local 2 0: aload 2
ifnonnull 2
1: aconst_null
areturn
2: StackMap locals:
StackMap stack:
aload 2
invokevirtual com.oracle.svm.hosted.c.info.RawStructureInfo.getParentInfo:()Lcom/oracle/svm/hosted/c/info/RawStructureInfo;
ifnull 6
3: aload 0
aload 1
aload 2
invokevirtual com.oracle.svm.hosted.c.info.RawStructureInfo.getParentInfo:()Lcom/oracle/svm/hosted/c/info/RawStructureInfo;
invokevirtual com.oracle.svm.hosted.c.query.RawStructureLayoutPlanner.findParentFieldInfo:(Lcom/oracle/svm/hosted/c/info/StructFieldInfo;Lcom/oracle/svm/hosted/c/info/RawStructureInfo;)Lcom/oracle/svm/hosted/c/info/StructFieldInfo;
astore 3
start local 3 4: aload 3
ifnull 6
5: aload 3
areturn
end local 3 6: StackMap locals:
StackMap stack:
aload 2
invokevirtual com.oracle.svm.hosted.c.info.RawStructureInfo.getChildren:()Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 5
goto 12
StackMap locals: com.oracle.svm.hosted.c.query.RawStructureLayoutPlanner com.oracle.svm.hosted.c.info.StructFieldInfo com.oracle.svm.hosted.c.info.RawStructureInfo top top java.util.Iterator
StackMap stack:
7: aload 5
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.oracle.svm.hosted.c.info.ElementInfo
astore 4
start local 4 8: aload 4
instanceof com.oracle.svm.hosted.c.info.StructFieldInfo
ifeq 12
9: aload 4
checkcast com.oracle.svm.hosted.c.info.StructFieldInfo
astore 6
start local 6 10: aload 1
invokevirtual com.oracle.svm.hosted.c.info.StructFieldInfo.getName:()Ljava/lang/String;
aload 6
invokevirtual com.oracle.svm.hosted.c.info.StructFieldInfo.getName:()Ljava/lang/String;
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 12
11: aload 6
areturn
end local 6 end local 4 12: StackMap locals:
StackMap stack:
aload 5
invokeinterface java.util.Iterator.hasNext:()Z
ifne 7
13: aconst_null
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 this Lcom/oracle/svm/hosted/c/query/RawStructureLayoutPlanner;
0 14 1 fieldInfo Lcom/oracle/svm/hosted/c/info/StructFieldInfo;
0 14 2 parentInfo Lcom/oracle/svm/hosted/c/info/RawStructureInfo;
4 6 3 result Lcom/oracle/svm/hosted/c/info/StructFieldInfo;
8 12 4 child Lcom/oracle/svm/hosted/c/info/ElementInfo;
10 12 6 parentFieldInfo Lcom/oracle/svm/hosted/c/info/StructFieldInfo;
MethodParameters:
Name Flags
fieldInfo
parentInfo
private static int alignOffset(int, int);
descriptor: (II)I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: iload 0
iload 1
irem
ifne 2
1: iload 0
ireturn
2: StackMap locals:
StackMap stack:
iload 0
iload 1
idiv
iconst_1
iadd
iload 1
imul
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 offset I
0 3 1 fieldSize I
MethodParameters:
Name Flags
offset
fieldSize
static int[] $SWITCH_TABLE$com$oracle$svm$hosted$c$info$AccessorInfo$AccessorKind();
descriptor: ()[I
flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
Code:
stack=3, locals=1, args_size=0
0: getstatic com.oracle.svm.hosted.c.query.RawStructureLayoutPlanner.$SWITCH_TABLE$com$oracle$svm$hosted$c$info$AccessorInfo$AccessorKind:[I
dup
ifnull 1
areturn
StackMap locals:
StackMap stack: int[]
1: pop
invokestatic com.oracle.svm.hosted.c.info.AccessorInfo$AccessorKind.values:()[Lcom/oracle/svm/hosted/c/info/AccessorInfo$AccessorKind;
arraylength
newarray 10
astore 0
2: aload 0
getstatic com.oracle.svm.hosted.c.info.AccessorInfo$AccessorKind.ADDRESS:Lcom/oracle/svm/hosted/c/info/AccessorInfo$AccessorKind;
invokevirtual com.oracle.svm.hosted.c.info.AccessorInfo$AccessorKind.ordinal:()I
iconst_4
iastore
3: goto 5
StackMap locals: int[]
StackMap stack: java.lang.NoSuchFieldError
4: pop
StackMap locals:
StackMap stack:
5: aload 0
getstatic com.oracle.svm.hosted.c.info.AccessorInfo$AccessorKind.GETTER:Lcom/oracle/svm/hosted/c/info/AccessorInfo$AccessorKind;
invokevirtual com.oracle.svm.hosted.c.info.AccessorInfo$AccessorKind.ordinal:()I
iconst_1
iastore
6: goto 8
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
7: pop
StackMap locals:
StackMap stack:
8: aload 0
getstatic com.oracle.svm.hosted.c.info.AccessorInfo$AccessorKind.OFFSET:Lcom/oracle/svm/hosted/c/info/AccessorInfo$AccessorKind;
invokevirtual com.oracle.svm.hosted.c.info.AccessorInfo$AccessorKind.ordinal:()I
iconst_3
iastore
9: goto 11
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
10: pop
StackMap locals:
StackMap stack:
11: aload 0
getstatic com.oracle.svm.hosted.c.info.AccessorInfo$AccessorKind.SETTER:Lcom/oracle/svm/hosted/c/info/AccessorInfo$AccessorKind;
invokevirtual com.oracle.svm.hosted.c.info.AccessorInfo$AccessorKind.ordinal:()I
iconst_2
iastore
12: goto 14
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
13: pop
StackMap locals:
StackMap stack:
14: aload 0
dup
putstatic com.oracle.svm.hosted.c.query.RawStructureLayoutPlanner.$SWITCH_TABLE$com$oracle$svm$hosted$c$info$AccessorInfo$AccessorKind:[I
areturn
LocalVariableTable:
Start End Slot Name Signature
Exception table:
from to target type
2 3 4 Class java.lang.NoSuchFieldError
5 6 7 Class java.lang.NoSuchFieldError
8 9 10 Class java.lang.NoSuchFieldError
11 12 13 Class java.lang.NoSuchFieldError
private static int lambda$0(com.oracle.svm.hosted.c.info.StructFieldInfo, com.oracle.svm.hosted.c.info.StructFieldInfo);
descriptor: (Lcom/oracle/svm/hosted/c/info/StructFieldInfo;Lcom/oracle/svm/hosted/c/info/StructFieldInfo;)I
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual com.oracle.svm.hosted.c.info.StructFieldInfo.getSizeInfo:()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
aload 0
invokevirtual com.oracle.svm.hosted.c.info.StructFieldInfo.getSizeInfo:()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
isub
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 f1 Lcom/oracle/svm/hosted/c/info/StructFieldInfo;
0 1 1 f2 Lcom/oracle/svm/hosted/c/info/StructFieldInfo;
}
SourceFile: "RawStructureLayoutPlanner.java"
InnerClasses:
public UserException = com.oracle.svm.core.util.UserError$UserException of com.oracle.svm.core.util.UserError
public final AccessorKind = com.oracle.svm.hosted.c.info.AccessorInfo$AccessorKind of com.oracle.svm.hosted.c.info.AccessorInfo
public final ElementKind = com.oracle.svm.hosted.c.info.SizableInfo$ElementKind of com.oracle.svm.hosted.c.info.SizableInfo
public final SignednessValue = com.oracle.svm.hosted.c.info.SizableInfo$SignednessValue of com.oracle.svm.hosted.c.info.SizableInfo
public final ReflectionUtilError = com.oracle.svm.util.ReflectionUtil$ReflectionUtilError of com.oracle.svm.util.ReflectionUtil
public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles