class com.oracle.svm.hosted.dashboard.HeapBreakdownJsonObject extends com.oracle.svm.hosted.dashboard.ToJson$JsonObject
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: com.oracle.svm.hosted.dashboard.HeapBreakdownJsonObject
super_class: com.oracle.svm.hosted.dashboard.ToJson$JsonObject
{
private org.graalvm.nativeimage.hosted.Feature$AfterHeapLayoutAccess access;
descriptor: Lorg/graalvm/nativeimage/hosted/Feature$AfterHeapLayoutAccess;
flags: (0x0002) ACC_PRIVATE
private boolean built;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private static final java.lang.String INFO_NAME;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: "name"
private static final java.lang.String INFO_SIZE;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: "size"
private static final java.lang.String INFO_COUNT;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: "count"
private static final java.util.List<java.lang.String> NAMES;
descriptor: Ljava/util/List;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
Signature: Ljava/util/List<Ljava/lang/String;>;
private final java.util.HashMap<java.lang.String, com.oracle.svm.hosted.dashboard.HeapBreakdownJsonObject$Statistics> sizes;
descriptor: Ljava/util/HashMap;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/HashMap<Ljava/lang/String;Lcom/oracle/svm/hosted/dashboard/HeapBreakdownJsonObject$Statistics;>;
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=0, args_size=0
0: iconst_3
anewarray java.lang.String
dup
iconst_0
ldc "name"
aastore
dup
iconst_1
ldc "size"
aastore
dup
iconst_2
ldc "count"
aastore
invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
putstatic com.oracle.svm.hosted.dashboard.HeapBreakdownJsonObject.NAMES:Ljava/util/List;
return
LocalVariableTable:
Start End Slot Name Signature
void <init>(org.graalvm.nativeimage.hosted.Feature$AfterHeapLayoutAccess);
descriptor: (Lorg/graalvm/nativeimage/hosted/Feature$AfterHeapLayoutAccess;)V
flags: (0x0000)
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokespecial com.oracle.svm.hosted.dashboard.ToJson$JsonObject.<init>:()V
1: aload 0
iconst_0
putfield com.oracle.svm.hosted.dashboard.HeapBreakdownJsonObject.built:Z
2: aload 0
new java.util.HashMap
dup
invokespecial java.util.HashMap.<init>:()V
putfield com.oracle.svm.hosted.dashboard.HeapBreakdownJsonObject.sizes:Ljava/util/HashMap;
3: aload 0
aload 1
putfield com.oracle.svm.hosted.dashboard.HeapBreakdownJsonObject.access:Lorg/graalvm/nativeimage/hosted/Feature$AfterHeapLayoutAccess;
4: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lcom/oracle/svm/hosted/dashboard/HeapBreakdownJsonObject;
0 5 1 access Lorg/graalvm/nativeimage/hosted/Feature$AfterHeapLayoutAccess;
MethodParameters:
Name Flags
access
java.util.Map<java.lang.String, java.lang.Long[]> getData();
descriptor: ()Ljava/util/Map;
flags: (0x0000)
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
getfield com.oracle.svm.hosted.dashboard.HeapBreakdownJsonObject.sizes:Ljava/util/HashMap;
invokevirtual java.util.HashMap.entrySet:()Ljava/util/Set;
invokeinterface java.util.Set.stream:()Ljava/util/stream/Stream;
invokedynamic apply()Ljava/util/function/Function;
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;
java/util/Map$Entry.getKey()Ljava/lang/Object; (9 itf)
(Ljava/util/Map$Entry;)Ljava/lang/String;
invokedynamic apply()Ljava/util/function/Function;
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;
com/oracle/svm/hosted/dashboard/HeapBreakdownJsonObject.lambda$1(Ljava/util/Map$Entry;)[Ljava/lang/Long; (6)
(Ljava/util/Map$Entry;)[Ljava/lang/Long;
invokestatic java.util.stream.Collectors.toMap:(Ljava/util/function/Function;Ljava/util/function/Function;)Ljava/util/stream/Collector;
invokeinterface java.util.stream.Stream.collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;
checkcast java.util.Map
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/svm/hosted/dashboard/HeapBreakdownJsonObject;
Signature: ()Ljava/util/Map<Ljava/lang/String;[Ljava/lang/Long;>;
java.util.stream.Stream<java.lang.String> getNames();
descriptor: ()Ljava/util/stream/Stream;
flags: (0x0000)
Code:
stack=4, locals=1, args_size=1
start local 0 0: iconst_1
anewarray java.lang.String
dup
iconst_0
ldc "heap-size"
aastore
invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
invokeinterface java.util.List.stream:()Ljava/util/stream/Stream;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/svm/hosted/dashboard/HeapBreakdownJsonObject;
Signature: ()Ljava/util/stream/Stream<Ljava/lang/String;>;
com.oracle.svm.hosted.dashboard.ToJson$JsonValue getValue(java.lang.String);
descriptor: (Ljava/lang/String;)Lcom/oracle/svm/hosted/dashboard/ToJson$JsonValue;
flags: (0x0000)
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield com.oracle.svm.hosted.dashboard.HeapBreakdownJsonObject.sizes:Ljava/util/HashMap;
invokevirtual java.util.HashMap.entrySet:()Ljava/util/Set;
invokeinterface java.util.Set.stream:()Ljava/util/stream/Stream;
invokedynamic apply()Ljava/util/function/Function;
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;
com/oracle/svm/hosted/dashboard/HeapBreakdownJsonObject$ClassJsonObject.<init>(Ljava/util/Map$Entry;)V (8)
(Ljava/util/Map$Entry;)Lcom/oracle/svm/hosted/dashboard/ToJson$JsonValue;
invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
invokestatic com.oracle.svm.hosted.dashboard.ToJson$JsonArray.get:(Ljava/util/stream/Stream;)Lcom/oracle/svm/hosted/dashboard/ToJson$JsonArray;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/svm/hosted/dashboard/HeapBreakdownJsonObject;
0 1 1 name Ljava/lang/String;
MethodParameters:
Name Flags
name
protected void build();
descriptor: ()V
flags: (0x0004) ACC_PROTECTED
Code:
stack=5, locals=7, args_size=1
start local 0 0: aload 0
getfield com.oracle.svm.hosted.dashboard.HeapBreakdownJsonObject.built:Z
ifeq 2
1: return
2: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.svm.hosted.dashboard.HeapBreakdownJsonObject.access:Lorg/graalvm/nativeimage/hosted/Feature$AfterHeapLayoutAccess;
checkcast com.oracle.svm.hosted.FeatureImpl$AfterHeapLayoutAccessImpl
astore 1
start local 1 3: aload 1
invokevirtual com.oracle.svm.hosted.FeatureImpl$AfterHeapLayoutAccessImpl.getHeap:()Lcom/oracle/svm/hosted/image/NativeImageHeap;
astore 2
start local 2 4: aload 2
invokevirtual com.oracle.svm.hosted.image.NativeImageHeap.getObjects:()Ljava/util/Collection;
invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
astore 4
goto 13
StackMap locals: com.oracle.svm.hosted.dashboard.HeapBreakdownJsonObject com.oracle.svm.hosted.FeatureImpl$AfterHeapLayoutAccessImpl com.oracle.svm.hosted.image.NativeImageHeap top java.util.Iterator
StackMap stack:
5: aload 4
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.oracle.svm.hosted.image.NativeImageHeap$ObjectInfo
astore 3
start local 3 6: aload 3
invokevirtual com.oracle.svm.hosted.image.NativeImageHeap$ObjectInfo.getClazz:()Lcom/oracle/svm/hosted/meta/HostedClass;
invokevirtual com.oracle.svm.hosted.meta.HostedClass.getName:()Ljava/lang/String;
astore 5
start local 5 7: aload 0
getfield com.oracle.svm.hosted.dashboard.HeapBreakdownJsonObject.sizes:Ljava/util/HashMap;
aload 5
invokevirtual java.util.HashMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast com.oracle.svm.hosted.dashboard.HeapBreakdownJsonObject$Statistics
astore 6
start local 6 8: aload 6
ifnonnull 11
9: new com.oracle.svm.hosted.dashboard.HeapBreakdownJsonObject$Statistics
dup
aload 0
invokespecial com.oracle.svm.hosted.dashboard.HeapBreakdownJsonObject$Statistics.<init>:(Lcom/oracle/svm/hosted/dashboard/HeapBreakdownJsonObject;)V
astore 6
10: aload 0
getfield com.oracle.svm.hosted.dashboard.HeapBreakdownJsonObject.sizes:Ljava/util/HashMap;
aload 5
aload 6
invokevirtual java.util.HashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
11: StackMap locals: com.oracle.svm.hosted.dashboard.HeapBreakdownJsonObject com.oracle.svm.hosted.FeatureImpl$AfterHeapLayoutAccessImpl com.oracle.svm.hosted.image.NativeImageHeap com.oracle.svm.hosted.image.NativeImageHeap$ObjectInfo java.util.Iterator java.lang.String com.oracle.svm.hosted.dashboard.HeapBreakdownJsonObject$Statistics
StackMap stack:
aload 6
dup
getfield com.oracle.svm.hosted.dashboard.HeapBreakdownJsonObject$Statistics.size:J
aload 3
invokevirtual com.oracle.svm.hosted.image.NativeImageHeap$ObjectInfo.getSize:()J
ladd
putfield com.oracle.svm.hosted.dashboard.HeapBreakdownJsonObject$Statistics.size:J
12: aload 6
dup
getfield com.oracle.svm.hosted.dashboard.HeapBreakdownJsonObject$Statistics.count:J
lconst_1
ladd
putfield com.oracle.svm.hosted.dashboard.HeapBreakdownJsonObject$Statistics.count:J
end local 6 end local 5 end local 3 13: StackMap locals: com.oracle.svm.hosted.dashboard.HeapBreakdownJsonObject com.oracle.svm.hosted.FeatureImpl$AfterHeapLayoutAccessImpl com.oracle.svm.hosted.image.NativeImageHeap top java.util.Iterator
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 5
14: aload 0
aconst_null
putfield com.oracle.svm.hosted.dashboard.HeapBreakdownJsonObject.access:Lorg/graalvm/nativeimage/hosted/Feature$AfterHeapLayoutAccess;
15: aload 0
iconst_1
putfield com.oracle.svm.hosted.dashboard.HeapBreakdownJsonObject.built:Z
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/dashboard/HeapBreakdownJsonObject;
3 17 1 config Lcom/oracle/svm/hosted/FeatureImpl$AfterHeapLayoutAccessImpl;
4 17 2 heap Lcom/oracle/svm/hosted/image/NativeImageHeap;
6 13 3 info Lcom/oracle/svm/hosted/image/NativeImageHeap$ObjectInfo;
7 13 5 className Ljava/lang/String;
8 13 6 stats Lcom/oracle/svm/hosted/dashboard/HeapBreakdownJsonObject$Statistics;
private static java.lang.Long[] lambda$1(java.util.Map$Entry);
descriptor: (Ljava/util/Map$Entry;)[Ljava/lang/Long;
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=5, locals=1, args_size=1
start local 0 0: iconst_2
anewarray java.lang.Long
dup
iconst_0
aload 0
invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
checkcast com.oracle.svm.hosted.dashboard.HeapBreakdownJsonObject$Statistics
getfield com.oracle.svm.hosted.dashboard.HeapBreakdownJsonObject$Statistics.size:J
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
aastore
dup
iconst_1
aload 0
invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
checkcast com.oracle.svm.hosted.dashboard.HeapBreakdownJsonObject$Statistics
getfield com.oracle.svm.hosted.dashboard.HeapBreakdownJsonObject$Statistics.count:J
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
aastore
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 e Ljava/util/Map$Entry<Ljava/lang/String;Lcom/oracle/svm/hosted/dashboard/HeapBreakdownJsonObject$Statistics;>;
}
SourceFile: "HeapBreakdownJsonObject.java"
NestMembers:
com.oracle.svm.hosted.dashboard.HeapBreakdownJsonObject$ClassJsonObject com.oracle.svm.hosted.dashboard.HeapBreakdownJsonObject$Statistics
InnerClasses:
public AfterHeapLayoutAccessImpl = com.oracle.svm.hosted.FeatureImpl$AfterHeapLayoutAccessImpl of com.oracle.svm.hosted.FeatureImpl
private ClassJsonObject = com.oracle.svm.hosted.dashboard.HeapBreakdownJsonObject$ClassJsonObject of com.oracle.svm.hosted.dashboard.HeapBreakdownJsonObject
private Statistics = com.oracle.svm.hosted.dashboard.HeapBreakdownJsonObject$Statistics of com.oracle.svm.hosted.dashboard.HeapBreakdownJsonObject
public abstract JsonArray = com.oracle.svm.hosted.dashboard.ToJson$JsonArray of com.oracle.svm.hosted.dashboard.ToJson
public abstract JsonObject = com.oracle.svm.hosted.dashboard.ToJson$JsonObject of com.oracle.svm.hosted.dashboard.ToJson
public abstract JsonValue = com.oracle.svm.hosted.dashboard.ToJson$JsonValue of com.oracle.svm.hosted.dashboard.ToJson
public final ObjectInfo = com.oracle.svm.hosted.image.NativeImageHeap$ObjectInfo of com.oracle.svm.hosted.image.NativeImageHeap
public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
public abstract Entry = java.util.Map$Entry of java.util.Map
public abstract AfterHeapLayoutAccess = org.graalvm.nativeimage.hosted.Feature$AfterHeapLayoutAccess of org.graalvm.nativeimage.hosted.Feature