public class jdk.internal.misc.CDS
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: jdk.internal.misc.CDS
super_class: java.lang.Object
{
private static final boolean isDumpingClassList;
descriptor: Z
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final boolean isDumpingArchive;
descriptor: Z
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final boolean isSharingEnabled;
descriptor: Z
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
static final java.lang.String DIRECT_HOLDER_CLASS_NAME;
descriptor: Ljava/lang/String;
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: "java.lang.invoke.DirectMethodHandle$Holder"
static final java.lang.String DELEGATING_HOLDER_CLASS_NAME;
descriptor: Ljava/lang/String;
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: "java.lang.invoke.DelegatingMethodHandle$Holder"
static final java.lang.String BASIC_FORMS_HOLDER_CLASS_NAME;
descriptor: Ljava/lang/String;
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: "java.lang.invoke.LambdaForm$Holder"
static final java.lang.String INVOKERS_HOLDER_CLASS_NAME;
descriptor: Ljava/lang/String;
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: "java.lang.invoke.Invokers$Holder"
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: invokestatic jdk.internal.misc.CDS.isDumpingClassList0:()Z
putstatic jdk.internal.misc.CDS.isDumpingClassList:Z
1: invokestatic jdk.internal.misc.CDS.isDumpingArchive0:()Z
putstatic jdk.internal.misc.CDS.isDumpingArchive:Z
2: invokestatic jdk.internal.misc.CDS.isSharingEnabled0:()Z
putstatic jdk.internal.misc.CDS.isSharingEnabled:Z
3: return
LocalVariableTable:
Start End Slot Name Signature
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.<init>:()V
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljdk/internal/misc/CDS;
public static boolean isDumpingClassList();
descriptor: ()Z
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: getstatic jdk.internal.misc.CDS.isDumpingClassList:Z
ireturn
LocalVariableTable:
Start End Slot Name Signature
public static boolean isDumpingArchive();
descriptor: ()Z
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: getstatic jdk.internal.misc.CDS.isDumpingArchive:Z
ireturn
LocalVariableTable:
Start End Slot Name Signature
public static boolean isSharingEnabled();
descriptor: ()Z
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: getstatic jdk.internal.misc.CDS.isSharingEnabled:Z
ireturn
LocalVariableTable:
Start End Slot Name Signature
private static native boolean isDumpingClassList0();
descriptor: ()Z
flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE
private static native boolean isDumpingArchive0();
descriptor: ()Z
flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE
private static native boolean isSharingEnabled0();
descriptor: ()Z
flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE
private static native void logLambdaFormInvoker(java.lang.String);
descriptor: (Ljava/lang/String;)V
flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE
MethodParameters:
Name Flags
line
public static native void initializeFromArchive(java.lang.Class<?>);
descriptor: (Ljava/lang/Class;)V
flags: (0x0109) ACC_PUBLIC, ACC_STATIC, ACC_NATIVE
Signature: (Ljava/lang/Class<*>;)V
MethodParameters:
Name Flags
c
public static native void defineArchivedModules(java.lang.ClassLoader, java.lang.ClassLoader);
descriptor: (Ljava/lang/ClassLoader;Ljava/lang/ClassLoader;)V
flags: (0x0109) ACC_PUBLIC, ACC_STATIC, ACC_NATIVE
MethodParameters:
Name Flags
platformLoader
systemLoader
public static native long getRandomSeedForDumping();
descriptor: ()J
flags: (0x0109) ACC_PUBLIC, ACC_STATIC, ACC_NATIVE
public static void traceLambdaFormInvoker(java.lang.String, java.lang.String, java.lang.String, java.lang.String);
descriptor: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: getstatic jdk.internal.misc.CDS.isDumpingClassList:Z
ifeq 2
1: new java.lang.StringBuilder
dup
aload 0
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc " "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc " "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 2
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc " "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 3
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokestatic jdk.internal.misc.CDS.logLambdaFormInvoker:(Ljava/lang/String;)V
2: StackMap locals:
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 prefix Ljava/lang/String;
0 3 1 holder Ljava/lang/String;
0 3 2 name Ljava/lang/String;
0 3 3 type Ljava/lang/String;
MethodParameters:
Name Flags
prefix
holder
name
type
public static void traceSpeciesType(java.lang.String, java.lang.String);
descriptor: (Ljava/lang/String;Ljava/lang/String;)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: getstatic jdk.internal.misc.CDS.isDumpingClassList:Z
ifeq 2
1: new java.lang.StringBuilder
dup
aload 0
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc " "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokestatic jdk.internal.misc.CDS.logLambdaFormInvoker:(Ljava/lang/String;)V
2: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 prefix Ljava/lang/String;
0 3 1 cn Ljava/lang/String;
MethodParameters:
Name Flags
prefix
cn
private static boolean isValidHolderName(java.lang.String);
descriptor: (Ljava/lang/String;)Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
ldc "java.lang.invoke.DirectMethodHandle$Holder"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 5
1: aload 0
ldc "java.lang.invoke.DelegatingMethodHandle$Holder"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 5
2: aload 0
ldc "java.lang.invoke.LambdaForm$Holder"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 5
3: aload 0
ldc "java.lang.invoke.Invokers$Holder"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 5
4: iconst_0
ireturn
StackMap locals:
StackMap stack:
5: iconst_1
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 name Ljava/lang/String;
MethodParameters:
Name Flags
name
private static boolean isBasicTypeChar(char);
descriptor: (C)Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: ldc "LIJFDV"
iload 0
invokevirtual java.lang.String.indexOf:(I)I
iflt 1
iconst_1
ireturn
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 c C
MethodParameters:
Name Flags
c
private static boolean isValidMethodType(java.lang.String);
descriptor: (Ljava/lang/String;)Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=4, args_size=1
start local 0 0: aload 0
ldc "_"
invokevirtual java.lang.String.split:(Ljava/lang/String;)[Ljava/lang/String;
astore 1
start local 1 1: aload 1
arraylength
iconst_2
if_icmpne 3
aload 1
iconst_1
aaload
invokevirtual java.lang.String.length:()I
iconst_1
if_icmpne 3
2: aload 1
iconst_1
aaload
iconst_0
invokevirtual java.lang.String.charAt:(I)C
invokestatic jdk.internal.misc.CDS.isBasicTypeChar:(C)Z
ifne 4
3: StackMap locals: java.lang.String[]
StackMap stack:
iconst_0
ireturn
4: StackMap locals:
StackMap stack:
aload 1
iconst_0
aaload
iconst_0
invokevirtual java.lang.String.charAt:(I)C
invokestatic jdk.internal.misc.CDS.isBasicTypeChar:(C)Z
ifne 6
5: iconst_0
ireturn
6: StackMap locals:
StackMap stack:
iconst_1
istore 2
start local 2 7: goto 13
8: StackMap locals: int
StackMap stack:
aload 1
iconst_0
aaload
iload 2
invokevirtual java.lang.String.charAt:(I)C
istore 3
start local 3 9: iload 3
invokestatic jdk.internal.misc.CDS.isBasicTypeChar:(C)Z
ifne 12
10: iload 3
bipush 48
if_icmplt 11
iload 3
bipush 57
if_icmple 12
11: StackMap locals: int
StackMap stack:
iconst_0
ireturn
end local 3 12: StackMap locals:
StackMap stack:
iinc 2 1
StackMap locals:
StackMap stack:
13: iload 2
aload 1
iconst_0
aaload
invokevirtual java.lang.String.length:()I
if_icmplt 8
end local 2 14: iconst_1
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 15 0 type Ljava/lang/String;
1 15 1 typeParts [Ljava/lang/String;
7 14 2 i I
9 12 3 c C
MethodParameters:
Name Flags
type
private static void validateInputLines(java.lang.String[]);
descriptor: ([Ljava/lang/String;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=7, args_size=1
start local 0 0: aload 0
dup
astore 4
arraylength
istore 3
iconst_0
istore 2
goto 16
StackMap locals: java.lang.String[] top int int java.lang.String[]
StackMap stack:
1: aload 4
iload 2
aaload
astore 1
start local 1 2: aload 1
ldc "[LF_RESOLVE]"
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifne 4
aload 1
ldc "[SPECIES_RESOLVE]"
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifne 4
3: new java.lang.IllegalArgumentException
dup
new java.lang.StringBuilder
dup
ldc "Wrong prefix: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
4: StackMap locals: java.lang.String[] java.lang.String int int java.lang.String[]
StackMap stack:
aload 1
ldc " "
invokevirtual java.lang.String.split:(Ljava/lang/String;)[Ljava/lang/String;
astore 5
start local 5 5: aload 1
ldc "[LF_RESOLVE]"
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
istore 6
start local 6 6: iload 6
ifeq 13
7: aload 5
arraylength
iconst_4
if_icmpeq 9
8: new java.lang.IllegalArgumentException
dup
new java.lang.StringBuilder
dup
ldc "Incorrect number of items in the line: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 5
arraylength
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
9: StackMap locals: java.lang.String[] int
StackMap stack:
aload 5
iconst_1
aaload
invokestatic jdk.internal.misc.CDS.isValidHolderName:(Ljava/lang/String;)Z
ifne 11
10: new java.lang.IllegalArgumentException
dup
new java.lang.StringBuilder
dup
ldc "Invalid holder class name: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 5
iconst_1
aaload
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
11: StackMap locals:
StackMap stack:
aload 5
iconst_3
aaload
invokestatic jdk.internal.misc.CDS.isValidMethodType:(Ljava/lang/String;)Z
ifne 15
12: new java.lang.IllegalArgumentException
dup
new java.lang.StringBuilder
dup
ldc "Invalid method type: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 5
iconst_3
aaload
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
13: StackMap locals:
StackMap stack:
aload 5
arraylength
iconst_2
if_icmpeq 15
14: new java.lang.IllegalArgumentException
dup
new java.lang.StringBuilder
dup
ldc "Incorrect number of items in the line: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 5
arraylength
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
end local 6 end local 5 end local 1 15: StackMap locals: java.lang.String[] top int int java.lang.String[]
StackMap stack:
iinc 2 1
StackMap locals:
StackMap stack:
16: iload 2
iload 3
if_icmplt 1
17: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 18 0 lines [Ljava/lang/String;
2 15 1 s Ljava/lang/String;
5 15 5 parts [Ljava/lang/String;
6 15 6 isLF Z
MethodParameters:
Name Flags
lines
private static java.lang.Object[] generateLambdaFormHolderClasses(java.lang.String[]);
descriptor: ([Ljava/lang/String;)[Ljava/lang/Object;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=8, args_size=1
start local 0 0: aload 0
invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
pop
1: aload 0
invokestatic jdk.internal.misc.CDS.validateInputLines:([Ljava/lang/String;)V
2: aload 0
invokestatic java.util.Arrays.stream:([Ljava/lang/Object;)Ljava/util/stream/Stream;
astore 1
start local 1 3: invokestatic jdk.internal.access.SharedSecrets.getJavaLangInvokeAccess:()Ljdk/internal/access/JavaLangInvokeAccess;
aload 1
invokeinterface jdk.internal.access.JavaLangInvokeAccess.generateHolderClasses:(Ljava/util/stream/Stream;)Ljava/util/Map;
astore 2
start local 2 4: aload 2
invokeinterface java.util.Map.size:()I
istore 3
start local 3 5: iload 3
iconst_2
imul
anewarray java.lang.Object
astore 4
start local 4 6: iconst_0
istore 5
start local 5 7: aload 2
invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 7
goto 11
StackMap locals: java.lang.String[] java.util.stream.Stream java.util.Map int java.lang.Object[] int top java.util.Iterator
StackMap stack:
8: aload 7
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.util.Map$Entry
astore 6
start local 6 9: aload 4
iload 5
iinc 5 1
aload 6
invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
aastore
10: aload 4
iload 5
iinc 5 1
aload 6
invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
aastore
end local 6 11: StackMap locals:
StackMap stack:
aload 7
invokeinterface java.util.Iterator.hasNext:()Z
ifne 8
12: aload 4
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 13 0 lines [Ljava/lang/String;
3 13 1 lineStream Ljava/util/stream/Stream<Ljava/lang/String;>;
4 13 2 result Ljava/util/Map<Ljava/lang/String;[B>;
5 13 3 size I
6 13 4 retArray [Ljava/lang/Object;
7 13 5 index I
9 11 6 entry Ljava/util/Map$Entry<Ljava/lang/String;[B>;
MethodParameters:
Name Flags
lines
}
SourceFile: "CDS.java"
InnerClasses:
public abstract Entry = java.util.Map$Entry of java.util.Map