class jdk.nashorn.internal.ir.debug.ObjectSizeCalculator$ClassSizeInfo
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: jdk.nashorn.internal.ir.debug.ObjectSizeCalculator$ClassSizeInfo
super_class: java.lang.Object
{
private final long objectSize;
descriptor: J
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final long fieldsSize;
descriptor: J
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.lang.reflect.Field[] referenceFields;
descriptor: [Ljava/lang/reflect/Field;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
final jdk.nashorn.internal.ir.debug.ObjectSizeCalculator this$0;
descriptor: Ljdk/nashorn/internal/ir/debug/ObjectSizeCalculator;
flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC
public void <init>(java.lang.Class<?>);
descriptor: (Ljdk/nashorn/internal/ir/debug/ObjectSizeCalculator;Ljava/lang/Class;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=11, args_size=3
start local 0 start local 2 0: aload 0
aload 1
putfield jdk.nashorn.internal.ir.debug.ObjectSizeCalculator$ClassSizeInfo.this$0:Ljdk/nashorn/internal/ir/debug/ObjectSizeCalculator;
aload 0
invokespecial java.lang.Object.<init>:()V
1: lconst_0
lstore 3
start local 3 2: new java.util.LinkedList
dup
invokespecial java.util.LinkedList.<init>:()V
astore 5
start local 5 3: aload 2
invokevirtual java.lang.Class.getDeclaredFields:()[Ljava/lang/reflect/Field;
dup
astore 9
arraylength
istore 8
iconst_0
istore 7
goto 15
StackMap locals: jdk.nashorn.internal.ir.debug.ObjectSizeCalculator$ClassSizeInfo jdk.nashorn.internal.ir.debug.ObjectSizeCalculator java.lang.Class long java.util.List top int int java.lang.reflect.Field[]
StackMap stack:
4: aload 9
iload 7
aaload
astore 6
start local 6 5: aload 6
invokevirtual java.lang.reflect.Field.getModifiers:()I
invokestatic java.lang.reflect.Modifier.isStatic:(I)Z
ifeq 7
6: goto 14
7: StackMap locals: jdk.nashorn.internal.ir.debug.ObjectSizeCalculator$ClassSizeInfo jdk.nashorn.internal.ir.debug.ObjectSizeCalculator java.lang.Class long java.util.List java.lang.reflect.Field int int java.lang.reflect.Field[]
StackMap stack:
aload 6
invokevirtual java.lang.reflect.Field.getType:()Ljava/lang/Class;
astore 10
start local 10 8: aload 10
invokevirtual java.lang.Class.isPrimitive:()Z
ifeq 11
9: lload 3
aload 10
invokestatic jdk.nashorn.internal.ir.debug.ObjectSizeCalculator.getPrimitiveFieldSize:(Ljava/lang/Class;)J
ladd
lstore 3
10: goto 14
11: StackMap locals: java.lang.Class
StackMap stack:
aload 6
iconst_1
invokevirtual java.lang.reflect.Field.setAccessible:(Z)V
12: aload 5
aload 6
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
13: lload 3
aload 1
getfield jdk.nashorn.internal.ir.debug.ObjectSizeCalculator.referenceSize:I
i2l
ladd
lstore 3
end local 10 end local 6 14: StackMap locals: jdk.nashorn.internal.ir.debug.ObjectSizeCalculator$ClassSizeInfo jdk.nashorn.internal.ir.debug.ObjectSizeCalculator java.lang.Class long java.util.List top int int java.lang.reflect.Field[]
StackMap stack:
iinc 7 1
StackMap locals:
StackMap stack:
15: iload 7
iload 8
if_icmplt 4
16: aload 2
invokevirtual java.lang.Class.getSuperclass:()Ljava/lang/Class;
astore 6
start local 6 17: aload 6
ifnull 21
18: aload 1
aload 6
invokevirtual jdk.nashorn.internal.ir.debug.ObjectSizeCalculator.getClassSizeInfo:(Ljava/lang/Class;)Ljdk/nashorn/internal/ir/debug/ObjectSizeCalculator$ClassSizeInfo;
astore 7
start local 7 19: lload 3
aload 7
getfield jdk.nashorn.internal.ir.debug.ObjectSizeCalculator$ClassSizeInfo.fieldsSize:J
aload 1
getfield jdk.nashorn.internal.ir.debug.ObjectSizeCalculator.superclassFieldPadding:I
invokestatic jdk.nashorn.internal.ir.debug.ObjectSizeCalculator.roundTo:(JI)J
ladd
lstore 3
20: aload 5
aload 7
getfield jdk.nashorn.internal.ir.debug.ObjectSizeCalculator$ClassSizeInfo.referenceFields:[Ljava/lang/reflect/Field;
invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
invokeinterface java.util.List.addAll:(Ljava/util/Collection;)Z
pop
end local 7 21: StackMap locals: jdk.nashorn.internal.ir.debug.ObjectSizeCalculator$ClassSizeInfo jdk.nashorn.internal.ir.debug.ObjectSizeCalculator java.lang.Class long java.util.List java.lang.Class
StackMap stack:
aload 0
lload 3
putfield jdk.nashorn.internal.ir.debug.ObjectSizeCalculator$ClassSizeInfo.fieldsSize:J
22: aload 0
aload 1
getfield jdk.nashorn.internal.ir.debug.ObjectSizeCalculator.objectHeaderSize:I
i2l
lload 3
ladd
aload 1
getfield jdk.nashorn.internal.ir.debug.ObjectSizeCalculator.objectPadding:I
invokestatic jdk.nashorn.internal.ir.debug.ObjectSizeCalculator.roundTo:(JI)J
putfield jdk.nashorn.internal.ir.debug.ObjectSizeCalculator$ClassSizeInfo.objectSize:J
23: aload 0
aload 5
24: iconst_0
anewarray java.lang.reflect.Field
25: invokeinterface java.util.List.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
checkcast java.lang.reflect.Field[]
putfield jdk.nashorn.internal.ir.debug.ObjectSizeCalculator$ClassSizeInfo.referenceFields:[Ljava/lang/reflect/Field;
26: return
end local 6 end local 5 end local 3 end local 2 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 27 0 this Ljdk/nashorn/internal/ir/debug/ObjectSizeCalculator$ClassSizeInfo;
0 27 2 clazz Ljava/lang/Class<*>;
2 27 3 newFieldsSize J
3 27 5 newReferenceFields Ljava/util/List<Ljava/lang/reflect/Field;>;
5 14 6 f Ljava/lang/reflect/Field;
8 14 10 type Ljava/lang/Class<*>;
17 27 6 superClass Ljava/lang/Class<*>;
19 21 7 superClassInfo Ljdk/nashorn/internal/ir/debug/ObjectSizeCalculator$ClassSizeInfo;
Signature: (Ljava/lang/Class<*>;)V
MethodParameters:
Name Flags
this$0 final
clazz final
void visit(java.lang.Object, jdk.nashorn.internal.ir.debug.ObjectSizeCalculator);
descriptor: (Ljava/lang/Object;Ljdk/nashorn/internal/ir/debug/ObjectSizeCalculator;)V
flags: (0x0000)
Code:
stack=4, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 2
aload 1
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
aload 0
getfield jdk.nashorn.internal.ir.debug.ObjectSizeCalculator$ClassSizeInfo.objectSize:J
invokevirtual jdk.nashorn.internal.ir.debug.ObjectSizeCalculator.increaseSize:(Ljava/lang/Class;J)V
1: aload 0
aload 1
aload 2
invokevirtual jdk.nashorn.internal.ir.debug.ObjectSizeCalculator$ClassSizeInfo.enqueueReferencedObjects:(Ljava/lang/Object;Ljdk/nashorn/internal/ir/debug/ObjectSizeCalculator;)V
2: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Ljdk/nashorn/internal/ir/debug/ObjectSizeCalculator$ClassSizeInfo;
0 3 1 obj Ljava/lang/Object;
0 3 2 calc Ljdk/nashorn/internal/ir/debug/ObjectSizeCalculator;
MethodParameters:
Name Flags
obj final
calc final
public void enqueueReferencedObjects(java.lang.Object, jdk.nashorn.internal.ir.debug.ObjectSizeCalculator);
descriptor: (Ljava/lang/Object;Ljdk/nashorn/internal/ir/debug/ObjectSizeCalculator;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=9, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield jdk.nashorn.internal.ir.debug.ObjectSizeCalculator$ClassSizeInfo.referenceFields:[Ljava/lang/reflect/Field;
dup
astore 6
arraylength
istore 5
iconst_0
istore 4
goto 11
StackMap locals: jdk.nashorn.internal.ir.debug.ObjectSizeCalculator$ClassSizeInfo java.lang.Object jdk.nashorn.internal.ir.debug.ObjectSizeCalculator top int int java.lang.reflect.Field[]
StackMap stack:
1: aload 6
iload 4
aaload
astore 3
start local 3 2: aload 2
aload 3
aload 1
invokevirtual java.lang.reflect.Field.get:(Ljava/lang/Object;)Ljava/lang/Object;
invokevirtual jdk.nashorn.internal.ir.debug.ObjectSizeCalculator.enqueue:(Ljava/lang/Object;)V
3: goto 10
StackMap locals: jdk.nashorn.internal.ir.debug.ObjectSizeCalculator$ClassSizeInfo java.lang.Object jdk.nashorn.internal.ir.debug.ObjectSizeCalculator java.lang.reflect.Field int int java.lang.reflect.Field[]
StackMap stack: java.lang.IllegalAccessException
4: astore 7
start local 7 5: new java.lang.AssertionError
dup
6: new java.lang.StringBuilder
dup
ldc "Unexpected denial of access to "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 3
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
7: invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
astore 8
start local 8 8: aload 8
aload 7
invokevirtual java.lang.AssertionError.initCause:(Ljava/lang/Throwable;)Ljava/lang/Throwable;
pop
9: aload 8
athrow
end local 8 end local 7 end local 3 10: StackMap locals: jdk.nashorn.internal.ir.debug.ObjectSizeCalculator$ClassSizeInfo java.lang.Object jdk.nashorn.internal.ir.debug.ObjectSizeCalculator top int int java.lang.reflect.Field[]
StackMap stack:
iinc 4 1
StackMap locals:
StackMap stack:
11: iload 4
iload 5
if_icmplt 1
12: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Ljdk/nashorn/internal/ir/debug/ObjectSizeCalculator$ClassSizeInfo;
0 13 1 obj Ljava/lang/Object;
0 13 2 calc Ljdk/nashorn/internal/ir/debug/ObjectSizeCalculator;
2 10 3 f Ljava/lang/reflect/Field;
5 10 7 e Ljava/lang/IllegalAccessException;
8 10 8 ae Ljava/lang/AssertionError;
Exception table:
from to target type
2 3 4 Class java.lang.IllegalAccessException
MethodParameters:
Name Flags
obj final
calc final
}
SourceFile: "ObjectSizeCalculator.java"
NestHost: jdk.nashorn.internal.ir.debug.ObjectSizeCalculator
InnerClasses:
private ClassSizeInfo = jdk.nashorn.internal.ir.debug.ObjectSizeCalculator$ClassSizeInfo of jdk.nashorn.internal.ir.debug.ObjectSizeCalculator