public final class org.graalvm.util.ObjectSizeEstimate
minor version: 0
major version: 59
flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
this_class: org.graalvm.util.ObjectSizeEstimate
super_class: java.lang.Object
{
private static final int UNCOMPRESSED_POINTER_SIZE;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 8
private static final int ;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 16
private static final int COMPRESSED_POINTER_SIZE;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 4
private static final int ;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 12
private int ;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private int pointerCount;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private int primitiveByteSize;
descriptor: I
flags: (0x0002) ACC_PRIVATE
public static org.graalvm.util.ObjectSizeEstimate forObject(java.lang.Object);
descriptor: (Ljava/lang/Object;)Lorg/graalvm/util/ObjectSizeEstimate;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
ldc 2147483647
invokestatic org.graalvm.util.ObjectSizeEstimate.forObject:(Ljava/lang/Object;I)Lorg/graalvm/util/ObjectSizeEstimate;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 root Ljava/lang/Object;
MethodParameters:
Name Flags
root
public static org.graalvm.util.ObjectSizeEstimate forObject(java.lang.Object, int);
descriptor: (Ljava/lang/Object;I)Lorg/graalvm/util/ObjectSizeEstimate;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
iload 1
invokestatic org.graalvm.util.ObjectSizeEstimate.forObjectHelper:(Ljava/lang/Object;I)Lorg/graalvm/util/ObjectSizeEstimate;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 root Ljava/lang/Object;
0 1 1 maxDepth I
MethodParameters:
Name Flags
root
maxDepth
private void <init>();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/graalvm/util/ObjectSizeEstimate;
public org.graalvm.util.ObjectSizeEstimate add(org.graalvm.util.ObjectSizeEstimate);
descriptor: (Lorg/graalvm/util/ObjectSizeEstimate;)Lorg/graalvm/util/ObjectSizeEstimate;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: new org.graalvm.util.ObjectSizeEstimate
dup
invokespecial org.graalvm.util.ObjectSizeEstimate.<init>:()V
astore 2
start local 2 1: aload 2
aload 0
getfield org.graalvm.util.ObjectSizeEstimate.headerCount:I
aload 1
getfield org.graalvm.util.ObjectSizeEstimate.headerCount:I
iadd
putfield org.graalvm.util.ObjectSizeEstimate.headerCount:I
2: aload 2
aload 0
getfield org.graalvm.util.ObjectSizeEstimate.primitiveByteSize:I
aload 1
getfield org.graalvm.util.ObjectSizeEstimate.primitiveByteSize:I
iadd
putfield org.graalvm.util.ObjectSizeEstimate.primitiveByteSize:I
3: aload 2
aload 0
getfield org.graalvm.util.ObjectSizeEstimate.pointerCount:I
aload 1
getfield org.graalvm.util.ObjectSizeEstimate.pointerCount:I
iadd
putfield org.graalvm.util.ObjectSizeEstimate.pointerCount:I
4: aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/graalvm/util/ObjectSizeEstimate;
0 5 1 other Lorg/graalvm/util/ObjectSizeEstimate;
1 5 2 result Lorg/graalvm/util/ObjectSizeEstimate;
MethodParameters:
Name Flags
other
public org.graalvm.util.ObjectSizeEstimate subtract(org.graalvm.util.ObjectSizeEstimate);
descriptor: (Lorg/graalvm/util/ObjectSizeEstimate;)Lorg/graalvm/util/ObjectSizeEstimate;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: new org.graalvm.util.ObjectSizeEstimate
dup
invokespecial org.graalvm.util.ObjectSizeEstimate.<init>:()V
astore 2
start local 2 1: aload 2
aload 0
getfield org.graalvm.util.ObjectSizeEstimate.headerCount:I
aload 1
getfield org.graalvm.util.ObjectSizeEstimate.headerCount:I
isub
putfield org.graalvm.util.ObjectSizeEstimate.headerCount:I
2: aload 2
aload 0
getfield org.graalvm.util.ObjectSizeEstimate.primitiveByteSize:I
aload 1
getfield org.graalvm.util.ObjectSizeEstimate.primitiveByteSize:I
isub
putfield org.graalvm.util.ObjectSizeEstimate.primitiveByteSize:I
3: aload 2
aload 0
getfield org.graalvm.util.ObjectSizeEstimate.pointerCount:I
aload 1
getfield org.graalvm.util.ObjectSizeEstimate.pointerCount:I
isub
putfield org.graalvm.util.ObjectSizeEstimate.pointerCount:I
4: aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/graalvm/util/ObjectSizeEstimate;
0 5 1 other Lorg/graalvm/util/ObjectSizeEstimate;
1 5 2 result Lorg/graalvm/util/ObjectSizeEstimate;
MethodParameters:
Name Flags
other
public int ();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.graalvm.util.ObjectSizeEstimate.headerCount:I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/graalvm/util/ObjectSizeEstimate;
public int getPointerCount();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.graalvm.util.ObjectSizeEstimate.pointerCount:I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/graalvm/util/ObjectSizeEstimate;
public int getPrimitiveByteSize();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.graalvm.util.ObjectSizeEstimate.primitiveByteSize:I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/graalvm/util/ObjectSizeEstimate;
public java.lang.String toString();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=1, args_size=1
start local 0 0: ldc "(#headers=%s, #pointers=%s, #primitiveBytes=%s, totalCompressed=%s, totalNonCompressed=%s)"
iconst_5
anewarray java.lang.Object
dup
iconst_0
aload 0
getfield org.graalvm.util.ObjectSizeEstimate.headerCount:I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
dup
iconst_1
aload 0
getfield org.graalvm.util.ObjectSizeEstimate.pointerCount:I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
dup
iconst_2
aload 0
getfield org.graalvm.util.ObjectSizeEstimate.primitiveByteSize:I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
dup
iconst_3
1: aload 0
invokevirtual org.graalvm.util.ObjectSizeEstimate.getCompressedTotalBytes:()I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
dup
iconst_4
aload 0
invokevirtual org.graalvm.util.ObjectSizeEstimate.getTotalBytes:()I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
2: invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/graalvm/util/ObjectSizeEstimate;
public int getCompressedTotalBytes();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
getfield org.graalvm.util.ObjectSizeEstimate.headerCount:I
bipush 12
imul
aload 0
getfield org.graalvm.util.ObjectSizeEstimate.pointerCount:I
iconst_4
imul
iadd
aload 0
getfield org.graalvm.util.ObjectSizeEstimate.primitiveByteSize:I
iadd
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/graalvm/util/ObjectSizeEstimate;
public int getTotalBytes();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
getfield org.graalvm.util.ObjectSizeEstimate.headerCount:I
bipush 16
imul
aload 0
getfield org.graalvm.util.ObjectSizeEstimate.pointerCount:I
bipush 8
imul
iadd
aload 0
getfield org.graalvm.util.ObjectSizeEstimate.primitiveByteSize:I
iadd
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/graalvm/util/ObjectSizeEstimate;
private void ();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
dup
getfield org.graalvm.util.ObjectSizeEstimate.headerCount:I
iconst_1
iadd
putfield org.graalvm.util.ObjectSizeEstimate.headerCount:I
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/graalvm/util/ObjectSizeEstimate;
private void recordPointer();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
dup
getfield org.graalvm.util.ObjectSizeEstimate.pointerCount:I
iconst_1
iadd
putfield org.graalvm.util.ObjectSizeEstimate.pointerCount:I
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/graalvm/util/ObjectSizeEstimate;
private void recordPrimitiveBytes(int);
descriptor: (I)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
dup
getfield org.graalvm.util.ObjectSizeEstimate.primitiveByteSize:I
iload 1
iadd
putfield org.graalvm.util.ObjectSizeEstimate.primitiveByteSize:I
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/graalvm/util/ObjectSizeEstimate;
0 2 1 size I
MethodParameters:
Name Flags
size
private static org.graalvm.util.ObjectSizeEstimate forObjectHelper(java.lang.Object, int);
descriptor: (Ljava/lang/Object;I)Lorg/graalvm/util/ObjectSizeEstimate;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=16, args_size=2
start local 0 start local 1 0: getstatic jdk.internal.vm.compiler.collections.Equivalence.IDENTITY_WITH_SYSTEM_HASHCODE:Ljdk/internal/vm/compiler/collections/Equivalence;
invokestatic jdk.internal.vm.compiler.collections.EconomicMap.create:(Ljdk/internal/vm/compiler/collections/Equivalence;)Ljdk/internal/vm/compiler/collections/EconomicMap;
astore 2
start local 2 1: new org.graalvm.util.ObjectSizeEstimate
dup
invokespecial org.graalvm.util.ObjectSizeEstimate.<init>:()V
astore 3
start local 3 2: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 4
start local 4 3: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 5
start local 5 4: aload 4
aload 0
invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
pop
5: aload 5
iconst_0
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
pop
6: aload 2
aload 0
aload 0
invokeinterface jdk.internal.vm.compiler.collections.EconomicMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
7: goto 98
8: StackMap locals: java.lang.Object int jdk.internal.vm.compiler.collections.EconomicMap org.graalvm.util.ObjectSizeEstimate java.util.ArrayList java.util.ArrayList
StackMap stack:
aload 4
aload 4
invokevirtual java.util.ArrayList.size:()I
iconst_1
isub
invokevirtual java.util.ArrayList.remove:(I)Ljava/lang/Object;
astore 6
start local 6 9: aload 5
aload 5
invokevirtual java.util.ArrayList.size:()I
iconst_1
isub
invokevirtual java.util.ArrayList.remove:(I)Ljava/lang/Object;
checkcast java.lang.Integer
invokevirtual java.lang.Integer.intValue:()I
istore 7
start local 7 10: aload 3
invokevirtual org.graalvm.util.ObjectSizeEstimate.recordHeader:()V
11: aload 6
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
astore 8
start local 8 12: aload 8
invokevirtual java.lang.Class.isArray:()Z
ifeq 97
13: aload 3
iconst_4
invokevirtual org.graalvm.util.ObjectSizeEstimate.recordPrimitiveBytes:(I)V
14: aload 6
instanceof byte[]
ifeq 17
15: aload 3
iconst_1
aload 6
checkcast byte[]
arraylength
imul
invokevirtual org.graalvm.util.ObjectSizeEstimate.recordPrimitiveBytes:(I)V
16: goto 98
StackMap locals: java.lang.Object int java.lang.Class
StackMap stack:
17: aload 6
instanceof boolean[]
ifeq 20
18: aload 3
iconst_1
aload 6
checkcast boolean[]
arraylength
imul
invokevirtual org.graalvm.util.ObjectSizeEstimate.recordPrimitiveBytes:(I)V
19: goto 98
StackMap locals:
StackMap stack:
20: aload 6
instanceof char[]
ifeq 23
21: aload 3
iconst_2
aload 6
checkcast char[]
arraylength
imul
invokevirtual org.graalvm.util.ObjectSizeEstimate.recordPrimitiveBytes:(I)V
22: goto 98
StackMap locals:
StackMap stack:
23: aload 6
instanceof short[]
ifeq 26
24: aload 3
iconst_2
aload 6
checkcast short[]
arraylength
imul
invokevirtual org.graalvm.util.ObjectSizeEstimate.recordPrimitiveBytes:(I)V
25: goto 98
StackMap locals:
StackMap stack:
26: aload 6
instanceof int[]
ifeq 29
27: aload 3
iconst_4
aload 6
checkcast int[]
arraylength
imul
invokevirtual org.graalvm.util.ObjectSizeEstimate.recordPrimitiveBytes:(I)V
28: goto 98
StackMap locals:
StackMap stack:
29: aload 6
instanceof long[]
ifeq 32
30: aload 3
bipush 8
aload 6
checkcast long[]
arraylength
imul
invokevirtual org.graalvm.util.ObjectSizeEstimate.recordPrimitiveBytes:(I)V
31: goto 98
StackMap locals:
StackMap stack:
32: aload 6
instanceof float[]
ifeq 35
33: aload 3
iconst_4
aload 6
checkcast float[]
arraylength
imul
invokevirtual org.graalvm.util.ObjectSizeEstimate.recordPrimitiveBytes:(I)V
34: goto 98
StackMap locals:
StackMap stack:
35: aload 6
instanceof double[]
ifeq 38
36: aload 3
iconst_1
aload 6
checkcast double[]
arraylength
imul
invokevirtual org.graalvm.util.ObjectSizeEstimate.recordPrimitiveBytes:(I)V
37: goto 98
38: StackMap locals:
StackMap stack:
aload 6
checkcast java.lang.Object[]
dup
astore 12
arraylength
istore 11
iconst_0
istore 10
goto 47
StackMap locals: java.lang.Object int jdk.internal.vm.compiler.collections.EconomicMap org.graalvm.util.ObjectSizeEstimate java.util.ArrayList java.util.ArrayList java.lang.Object int java.lang.Class top int int java.lang.Object[]
StackMap stack:
39: aload 12
iload 10
aaload
astore 9
start local 9 40: aload 3
invokevirtual org.graalvm.util.ObjectSizeEstimate.recordPointer:()V
41: aload 9
ifnull 46
42: iload 7
iload 1
if_icmpge 46
aload 2
aload 9
invokeinterface jdk.internal.vm.compiler.collections.EconomicMap.containsKey:(Ljava/lang/Object;)Z
ifne 46
43: aload 2
aload 9
aconst_null
invokeinterface jdk.internal.vm.compiler.collections.EconomicMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
44: aload 4
aload 9
invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
pop
45: aload 5
iload 7
iconst_1
iadd
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
pop
end local 9 46: StackMap locals:
StackMap stack:
iinc 10 1
StackMap locals:
StackMap stack:
47: iload 10
iload 11
if_icmplt 39
48: goto 98
49: StackMap locals: java.lang.Object int jdk.internal.vm.compiler.collections.EconomicMap org.graalvm.util.ObjectSizeEstimate java.util.ArrayList java.util.ArrayList java.lang.Object int java.lang.Class
StackMap stack:
aload 8
invokevirtual java.lang.Class.getDeclaredFields:()[Ljava/lang/reflect/Field;
astore 9
start local 9 50: aload 9
dup
astore 13
arraylength
istore 12
iconst_0
istore 11
goto 95
StackMap locals: java.lang.Object int jdk.internal.vm.compiler.collections.EconomicMap org.graalvm.util.ObjectSizeEstimate java.util.ArrayList java.util.ArrayList java.lang.Object int java.lang.Class java.lang.reflect.Field[] top int int java.lang.reflect.Field[]
StackMap stack:
51: aload 13
iload 11
aaload
astore 10
start local 10 52: aload 10
invokevirtual java.lang.reflect.Field.getModifiers:()I
invokestatic java.lang.reflect.Modifier.isStatic:(I)Z
ifne 94
53: aload 10
invokevirtual java.lang.reflect.Field.getType:()Ljava/lang/Class;
astore 14
start local 14 54: aload 14
getstatic java.lang.Byte.TYPE:Ljava/lang/Class;
if_acmpne 57
55: aload 3
iconst_1
invokevirtual org.graalvm.util.ObjectSizeEstimate.recordPrimitiveBytes:(I)V
56: goto 94
StackMap locals: java.lang.Object int jdk.internal.vm.compiler.collections.EconomicMap org.graalvm.util.ObjectSizeEstimate java.util.ArrayList java.util.ArrayList java.lang.Object int java.lang.Class java.lang.reflect.Field[] java.lang.reflect.Field int int java.lang.reflect.Field[] java.lang.Class
StackMap stack:
57: aload 14
getstatic java.lang.Boolean.TYPE:Ljava/lang/Class;
if_acmpne 60
58: aload 3
iconst_1
invokevirtual org.graalvm.util.ObjectSizeEstimate.recordPrimitiveBytes:(I)V
59: goto 94
StackMap locals:
StackMap stack:
60: aload 14
getstatic java.lang.Character.TYPE:Ljava/lang/Class;
if_acmpne 63
61: aload 3
iconst_2
invokevirtual org.graalvm.util.ObjectSizeEstimate.recordPrimitiveBytes:(I)V
62: goto 94
StackMap locals:
StackMap stack:
63: aload 14
getstatic java.lang.Short.TYPE:Ljava/lang/Class;
if_acmpne 66
64: aload 3
iconst_2
invokevirtual org.graalvm.util.ObjectSizeEstimate.recordPrimitiveBytes:(I)V
65: goto 94
StackMap locals:
StackMap stack:
66: aload 14
getstatic java.lang.Integer.TYPE:Ljava/lang/Class;
if_acmpne 69
67: aload 3
iconst_4
invokevirtual org.graalvm.util.ObjectSizeEstimate.recordPrimitiveBytes:(I)V
68: goto 94
StackMap locals:
StackMap stack:
69: aload 14
getstatic java.lang.Long.TYPE:Ljava/lang/Class;
if_acmpne 72
70: aload 3
bipush 8
invokevirtual org.graalvm.util.ObjectSizeEstimate.recordPrimitiveBytes:(I)V
71: goto 94
StackMap locals:
StackMap stack:
72: aload 14
getstatic java.lang.Float.TYPE:Ljava/lang/Class;
if_acmpne 75
73: aload 3
iconst_4
invokevirtual org.graalvm.util.ObjectSizeEstimate.recordPrimitiveBytes:(I)V
74: goto 94
StackMap locals:
StackMap stack:
75: aload 14
getstatic java.lang.Double.TYPE:Ljava/lang/Class;
if_acmpne 78
76: aload 3
bipush 8
invokevirtual org.graalvm.util.ObjectSizeEstimate.recordPrimitiveBytes:(I)V
77: goto 94
78: StackMap locals:
StackMap stack:
aload 3
invokevirtual org.graalvm.util.ObjectSizeEstimate.recordPointer:()V
79: iload 1
iconst_1
if_icmple 94
80: aload 10
iconst_1
invokevirtual java.lang.reflect.Field.setAccessible:(Z)V
81: aload 10
aload 6
invokevirtual java.lang.reflect.Field.get:(Ljava/lang/Object;)Ljava/lang/Object;
astore 15
start local 15 82: aload 15
ifnull 94
83: iload 7
iload 1
if_icmpge 94
aload 2
aload 15
invokeinterface jdk.internal.vm.compiler.collections.EconomicMap.containsKey:(Ljava/lang/Object;)Z
ifne 94
84: aload 2
aload 15
aconst_null
invokeinterface jdk.internal.vm.compiler.collections.EconomicMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
85: aload 4
aload 15
invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
pop
86: aload 5
iload 7
iconst_1
iadd
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
pop
end local 15 87: goto 94
StackMap locals:
StackMap stack: java.lang.Exception
88: pop
89: new java.lang.UnsupportedOperationException
dup
ldc "Must have access privileges to traverse object graph"
invokespecial java.lang.UnsupportedOperationException.<init>:(Ljava/lang/String;)V
athrow
90: StackMap locals:
StackMap stack: java.lang.RuntimeException
astore 15
start local 15 91: ldc "java.lang.reflect.InaccessibleObjectException"
aload 15
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 93
92: new java.lang.UnsupportedOperationException
dup
ldc "Target class is not exported to the current module."
aload 15
invokespecial java.lang.UnsupportedOperationException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
93: StackMap locals: java.lang.RuntimeException
StackMap stack:
aload 15
athrow
end local 15 end local 14 end local 10 94: StackMap locals: java.lang.Object int jdk.internal.vm.compiler.collections.EconomicMap org.graalvm.util.ObjectSizeEstimate java.util.ArrayList java.util.ArrayList java.lang.Object int java.lang.Class java.lang.reflect.Field[] top int int java.lang.reflect.Field[]
StackMap stack:
iinc 11 1
StackMap locals:
StackMap stack:
95: iload 11
iload 12
if_icmplt 51
96: aload 8
invokevirtual java.lang.Class.getSuperclass:()Ljava/lang/Class;
astore 8
end local 9 97: StackMap locals: java.lang.Object int jdk.internal.vm.compiler.collections.EconomicMap org.graalvm.util.ObjectSizeEstimate java.util.ArrayList java.util.ArrayList java.lang.Object int java.lang.Class
StackMap stack:
aload 8
ifnonnull 49
end local 8 end local 7 end local 6 98: StackMap locals:
StackMap stack:
aload 4
invokevirtual java.util.ArrayList.isEmpty:()Z
ifeq 8
99: aload 3
areturn
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 100 0 object Ljava/lang/Object;
0 100 1 maxDepth I
1 100 2 identityHashMap Ljdk/internal/vm/compiler/collections/EconomicMap<Ljava/lang/Object;Ljava/lang/Object;>;
2 100 3 size Lorg/graalvm/util/ObjectSizeEstimate;
3 100 4 stack Ljava/util/ArrayList<Ljava/lang/Object;>;
4 100 5 depthStack Ljava/util/ArrayList<Ljava/lang/Integer;>;
9 98 6 o Ljava/lang/Object;
10 98 7 depth I
12 98 8 c Ljava/lang/Class<*>;
40 46 9 element Ljava/lang/Object;
50 97 9 fields [Ljava/lang/reflect/Field;
52 94 10 f Ljava/lang/reflect/Field;
54 94 14 type Ljava/lang/Class<*>;
82 87 15 inner Ljava/lang/Object;
91 94 15 e Ljava/lang/RuntimeException;
Exception table:
from to target type
80 87 88 Class java.lang.IllegalArgumentException
80 87 88 Class java.lang.IllegalAccessException
80 87 90 Class java.lang.RuntimeException
MethodParameters:
Name Flags
object
maxDepth
public static org.graalvm.util.ObjectSizeEstimate zero();
descriptor: ()Lorg/graalvm/util/ObjectSizeEstimate;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=0, args_size=0
0: new org.graalvm.util.ObjectSizeEstimate
dup
invokespecial org.graalvm.util.ObjectSizeEstimate.<init>:()V
areturn
LocalVariableTable:
Start End Slot Name Signature
public int hashCode();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=1, args_size=1
start local 0 0: aload 0
getfield org.graalvm.util.ObjectSizeEstimate.headerCount:I
bipush 31
aload 0
getfield org.graalvm.util.ObjectSizeEstimate.pointerCount:I
bipush 31
aload 0
getfield org.graalvm.util.ObjectSizeEstimate.primitiveByteSize:I
imul
iadd
imul
iadd
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/graalvm/util/ObjectSizeEstimate;
public boolean equals(java.lang.Object);
descriptor: (Ljava/lang/Object;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 0
aload 1
if_acmpne 2
1: iconst_1
ireturn
2: StackMap locals:
StackMap stack:
aload 1
instanceof org.graalvm.util.ObjectSizeEstimate
ifeq 6
3: aload 1
checkcast org.graalvm.util.ObjectSizeEstimate
astore 2
start local 2 4: aload 0
getfield org.graalvm.util.ObjectSizeEstimate.headerCount:I
aload 2
getfield org.graalvm.util.ObjectSizeEstimate.headerCount:I
if_icmpne 5
aload 0
getfield org.graalvm.util.ObjectSizeEstimate.pointerCount:I
aload 2
getfield org.graalvm.util.ObjectSizeEstimate.pointerCount:I
if_icmpne 5
aload 0
getfield org.graalvm.util.ObjectSizeEstimate.primitiveByteSize:I
aload 2
getfield org.graalvm.util.ObjectSizeEstimate.primitiveByteSize:I
if_icmpne 5
iconst_1
ireturn
StackMap locals: org.graalvm.util.ObjectSizeEstimate
StackMap stack:
5: iconst_0
ireturn
end local 2 6: StackMap locals:
StackMap stack:
iconst_0
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lorg/graalvm/util/ObjectSizeEstimate;
0 7 1 obj Ljava/lang/Object;
4 6 2 other Lorg/graalvm/util/ObjectSizeEstimate;
MethodParameters:
Name Flags
obj
}
SourceFile: "ObjectSizeEstimate.java"