public final class jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin implements jdk.tools.jlink.plugin.Plugin
minor version: 0
major version: 59
flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
this_class: jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin
super_class: java.lang.Object
{
private static final java.lang.String NAME;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: "generate-jli-classes"
private static final java.lang.String DESCRIPTION;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final java.lang.String DEFAULT_TRACE_FILE;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: "default_jli_trace.txt"
private static final java.lang.String DIRECT_HOLDER;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: "java/lang/invoke/DirectMethodHandle$Holder"
private static final java.lang.String DMH_INVOKE_VIRTUAL;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: "invokeVirtual"
private static final java.lang.String DMH_INVOKE_STATIC;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: "invokeStatic"
private static final java.lang.String DMH_INVOKE_SPECIAL;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: "invokeSpecial"
private static final java.lang.String DMH_NEW_INVOKE_SPECIAL;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: "newInvokeSpecial"
private static final java.lang.String DMH_INVOKE_INTERFACE;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: "invokeInterface"
private static final java.lang.String DMH_INVOKE_STATIC_INIT;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: "invokeStaticInit"
private static final java.lang.String DMH_INVOKE_SPECIAL_IFC;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: "invokeSpecialIFC"
private static final java.lang.String DELEGATING_HOLDER;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: "java/lang/invoke/DelegatingMethodHandle$Holder"
private static final java.lang.String BASIC_FORMS_HOLDER;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: "java/lang/invoke/LambdaForm$Holder"
private static final java.lang.String INVOKERS_HOLDER_NAME;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: "java.lang.invoke.Invokers$Holder"
private static final java.lang.String INVOKERS_HOLDER_INTERNAL_NAME;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final jdk.internal.access.JavaLangInvokeAccess JLIA;
descriptor: Ljdk/internal/access/JavaLangInvokeAccess;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private final java.util.TreeSet<java.lang.String> speciesTypes;
descriptor: Ljava/util/TreeSet;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/TreeSet<Ljava/lang/String;>;
private final java.util.TreeSet<java.lang.String> invokerTypes;
descriptor: Ljava/util/TreeSet;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/TreeSet<Ljava/lang/String;>;
private final java.util.TreeSet<java.lang.String> callSiteTypes;
descriptor: Ljava/util/TreeSet;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/TreeSet<Ljava/lang/String;>;
private final java.util.Map<java.lang.String, java.util.Set<java.lang.String>> dmhMethods;
descriptor: Ljava/util/Map;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/Map<Ljava/lang/String;Ljava/util/Set<Ljava/lang/String;>;>;
java.lang.String mainArgument;
descriptor: Ljava/lang/String;
flags: (0x0000)
private static int DMH_INVOKE_VIRTUAL_TYPE;
descriptor: I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
private static int DMH_INVOKE_INTERFACE_TYPE;
descriptor: I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
private static final java.util.Map<java.lang.String, java.lang.Integer> DMH_METHOD_TYPE_MAP;
descriptor: Ljava/util/Map;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
Signature: Ljava/util/Map<Ljava/lang/String;Ljava/lang/Integer;>;
private static final java.lang.String DIRECT_METHOD_HOLDER_ENTRY;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: "/java.base/java/lang/invoke/DirectMethodHandle$Holder.class"
private static final java.lang.String DELEGATING_METHOD_HOLDER_ENTRY;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: "/java.base/java/lang/invoke/DelegatingMethodHandle$Holder.class"
private static final java.lang.String BASIC_FORMS_HOLDER_ENTRY;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: "/java.base/java/lang/invoke/LambdaForm$Holder.class"
private static final java.lang.String INVOKERS_HOLDER_ENTRY;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
static final boolean $assertionsDisabled;
descriptor: Z
flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=14, locals=0, args_size=0
0: ldc Ljdk/tools/jlink/internal/plugins/GenerateJLIClassesPlugin;
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 jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.$assertionsDisabled:Z
3: ldc "generate-jli-classes"
invokestatic jdk.tools.jlink.internal.plugins.PluginsResourceBundle.getDescription:(Ljava/lang/String;)Ljava/lang/String;
putstatic jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.DESCRIPTION:Ljava/lang/String;
4: ldc "java.lang.invoke.Invokers$Holder"
bipush 46
bipush 47
invokevirtual java.lang.String.replace:(CC)Ljava/lang/String;
putstatic jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.INVOKERS_HOLDER_INTERNAL_NAME:Ljava/lang/String;
5: invokestatic jdk.internal.access.SharedSecrets.getJavaLangInvokeAccess:()Ljdk/internal/access/JavaLangInvokeAccess;
6: putstatic jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.JLIA:Ljdk/internal/access/JavaLangInvokeAccess;
7: iconst_0
putstatic jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.DMH_INVOKE_VIRTUAL_TYPE:I
8: iconst_4
putstatic jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.DMH_INVOKE_INTERFACE_TYPE:I
9: ldc "invokeVirtual"
getstatic jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.DMH_INVOKE_VIRTUAL_TYPE:I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
10: ldc "invokeStatic"
iconst_1
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
11: ldc "invokeSpecial"
iconst_2
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
12: ldc "newInvokeSpecial"
iconst_3
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
13: ldc "invokeInterface"
getstatic jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.DMH_INVOKE_INTERFACE_TYPE:I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
14: ldc "invokeStaticInit"
iconst_5
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
15: ldc "invokeSpecialIFC"
bipush 20
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
16: invokestatic java.util.Map.of:(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;
17: putstatic jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.DMH_METHOD_TYPE_MAP:Ljava/util/Map;
18: new java.lang.StringBuilder
dup
ldc "/java.base/"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
getstatic jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.INVOKERS_HOLDER_INTERNAL_NAME:Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc ".class"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
19: putstatic jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.INVOKERS_HOLDER_ENTRY:Ljava/lang/String;
20: return
LocalVariableTable:
Start End Slot Name Signature
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
new java.util.TreeSet
dup
invokespecial java.util.TreeSet.<init>:()V
putfield jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.speciesTypes:Ljava/util/TreeSet;
2: aload 0
new java.util.TreeSet
dup
invokespecial java.util.TreeSet.<init>:()V
putfield jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.invokerTypes:Ljava/util/TreeSet;
3: aload 0
new java.util.TreeSet
dup
invokespecial java.util.TreeSet.<init>:()V
putfield jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.callSiteTypes:Ljava/util/TreeSet;
4: aload 0
new java.util.TreeMap
dup
invokespecial java.util.TreeMap.<init>:()V
putfield jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.dmhMethods:Ljava/util/Map;
5: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Ljdk/tools/jlink/internal/plugins/GenerateJLIClassesPlugin;
public java.lang.String getName();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: ldc "generate-jli-classes"
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljdk/tools/jlink/internal/plugins/GenerateJLIClassesPlugin;
public java.lang.String getDescription();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: getstatic jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.DESCRIPTION:Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljdk/tools/jlink/internal/plugins/GenerateJLIClassesPlugin;
public java.util.Set<jdk.tools.jlink.plugin.Plugin$State> getState();
descriptor: ()Ljava/util/Set;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: getstatic jdk.tools.jlink.plugin.Plugin$State.AUTO_ENABLED:Ljdk/tools/jlink/plugin/Plugin$State;
getstatic jdk.tools.jlink.plugin.Plugin$State.FUNCTIONAL:Ljdk/tools/jlink/plugin/Plugin$State;
invokestatic java.util.EnumSet.of:(Ljava/lang/Enum;Ljava/lang/Enum;)Ljava/util/EnumSet;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljdk/tools/jlink/internal/plugins/GenerateJLIClassesPlugin;
Signature: ()Ljava/util/Set<Ljdk/tools/jlink/plugin/Plugin$State;>;
public boolean hasArguments();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: iconst_1
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljdk/tools/jlink/internal/plugins/GenerateJLIClassesPlugin;
public java.lang.String getArgumentsDescription();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: ldc "generate-jli-classes"
iconst_0
anewarray java.lang.Object
invokestatic jdk.tools.jlink.internal.plugins.PluginsResourceBundle.getArgument:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljdk/tools/jlink/internal/plugins/GenerateJLIClassesPlugin;
public static java.util.Set<java.lang.String> defaultSpecies();
descriptor: ()Ljava/util/Set;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=0, args_size=0
0: bipush 27
anewarray java.lang.String
dup
iconst_0
ldc "LL"
aastore
dup
iconst_1
ldc "L3"
aastore
dup
iconst_2
ldc "L4"
aastore
dup
iconst_3
ldc "L5"
aastore
dup
iconst_4
ldc "L6"
aastore
dup
iconst_5
ldc "L7"
aastore
dup
bipush 6
ldc "L7I"
aastore
dup
bipush 7
1: ldc "L7II"
aastore
dup
bipush 8
ldc "L7IIL"
aastore
dup
bipush 9
ldc "L8"
aastore
dup
bipush 10
ldc "L9"
aastore
dup
bipush 11
ldc "L10"
aastore
dup
bipush 12
ldc "L10I"
aastore
dup
bipush 13
ldc "L10II"
aastore
dup
bipush 14
ldc "L10IIL"
aastore
dup
bipush 15
2: ldc "L11"
aastore
dup
bipush 16
ldc "L12"
aastore
dup
bipush 17
ldc "L13"
aastore
dup
bipush 18
ldc "LI"
aastore
dup
bipush 19
ldc "D"
aastore
dup
bipush 20
ldc "L3I"
aastore
dup
bipush 21
ldc "LIL"
aastore
dup
bipush 22
ldc "LLI"
aastore
dup
bipush 23
ldc "LLIL"
aastore
dup
bipush 24
3: ldc "LILL"
aastore
dup
bipush 25
ldc "I"
aastore
dup
bipush 26
ldc "LLILL"
aastore
4: invokestatic java.util.Set.of:([Ljava/lang/Object;)Ljava/util/Set;
areturn
LocalVariableTable:
Start End Slot Name Signature
Signature: ()Ljava/util/Set<Ljava/lang/String;>;
private static java.util.Set<java.lang.String> defaultInvokers();
descriptor: ()Ljava/util/Set;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=7, locals=0, args_size=0
0: ldc "LL_L"
ldc "LL_I"
ldc "LLLL_L"
ldc "LLLL_I"
ldc "LLIL_L"
ldc "LLIL_I"
1: ldc "L6_L"
2: invokestatic java.util.Set.of:(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Set;
areturn
LocalVariableTable:
Start End Slot Name Signature
Signature: ()Ljava/util/Set<Ljava/lang/String;>;
private static java.util.Set<java.lang.String> defaultCallSiteTypes();
descriptor: ()Ljava/util/Set;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=0, args_size=0
0: ldc "L5_L"
ldc "LIL3_L"
ldc "ILL_L"
invokestatic java.util.Set.of:(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Set;
areturn
LocalVariableTable:
Start End Slot Name Signature
Signature: ()Ljava/util/Set<Ljava/lang/String;>;
private static java.util.Map<java.lang.String, java.util.Set<java.lang.String>> defaultDMHMethods();
descriptor: ()Ljava/util/Map;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=12, locals=0, args_size=0
0: ldc "invokeInterface"
ldc "LL_L"
ldc "L3_I"
ldc "L3_V"
invokestatic java.util.Set.of:(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Set;
1: ldc "invokeVirtual"
ldc "LL_L"
ldc "LLI_I"
ldc "L3_V"
invokestatic java.util.Set.of:(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Set;
2: ldc "invokeSpecial"
bipush 33
anewarray java.lang.String
dup
iconst_0
ldc "LL_I"
aastore
dup
iconst_1
ldc "LL_L"
aastore
dup
iconst_2
ldc "LLF_L"
aastore
dup
iconst_3
ldc "LLD_L"
aastore
dup
iconst_4
3: ldc "L3_I"
aastore
dup
iconst_5
ldc "L3_L"
aastore
dup
bipush 6
ldc "L4_L"
aastore
dup
bipush 7
ldc "L5_L"
aastore
dup
bipush 8
ldc "L6_L"
aastore
dup
bipush 9
ldc "L7_L"
aastore
dup
bipush 10
ldc "L8_L"
aastore
dup
bipush 11
4: ldc "LLI_I"
aastore
dup
bipush 12
ldc "LLI_L"
aastore
dup
bipush 13
ldc "LLIL_I"
aastore
dup
bipush 14
ldc "LLIL_L"
aastore
dup
bipush 15
ldc "LLII_I"
aastore
dup
bipush 16
ldc "LLII_L"
aastore
dup
bipush 17
5: ldc "L3I_L"
aastore
dup
bipush 18
ldc "L3I_I"
aastore
dup
bipush 19
ldc "L3ILL_L"
aastore
dup
bipush 20
ldc "LLILI_I"
aastore
dup
bipush 21
ldc "LLIIL_L"
aastore
dup
bipush 22
ldc "LLIILL_L"
aastore
dup
bipush 23
6: ldc "LLIILL_I"
aastore
dup
bipush 24
ldc "LLIIL_I"
aastore
dup
bipush 25
ldc "LLILIL_I"
aastore
dup
bipush 26
ldc "LLILILL_I"
aastore
dup
bipush 27
ldc "LLILII_I"
aastore
dup
bipush 28
7: ldc "LLI3_I"
aastore
dup
bipush 29
ldc "LLI3L_I"
aastore
dup
bipush 30
ldc "LLI3LL_I"
aastore
dup
bipush 31
ldc "LLI3_L"
aastore
dup
bipush 32
ldc "LLI4_I"
aastore
8: invokestatic java.util.Set.of:([Ljava/lang/Object;)Ljava/util/Set;
9: ldc "invokeStatic"
bipush 37
anewarray java.lang.String
dup
iconst_0
ldc "LII_I"
aastore
dup
iconst_1
ldc "LIL_I"
aastore
dup
iconst_2
ldc "LILIL_I"
aastore
dup
iconst_3
ldc "LILII_I"
aastore
dup
iconst_4
10: ldc "L_I"
aastore
dup
iconst_5
ldc "L_L"
aastore
dup
bipush 6
ldc "L_V"
aastore
dup
bipush 7
ldc "LD_L"
aastore
dup
bipush 8
ldc "LF_L"
aastore
dup
bipush 9
ldc "LI_I"
aastore
dup
bipush 10
ldc "LII_L"
aastore
dup
bipush 11
ldc "LLI_L"
aastore
dup
bipush 12
11: ldc "LL_I"
aastore
dup
bipush 13
ldc "LLILL_L"
aastore
dup
bipush 14
ldc "LLIL3_L"
aastore
dup
bipush 15
ldc "LL_V"
aastore
dup
bipush 16
ldc "LL_L"
aastore
dup
bipush 17
ldc "L3_I"
aastore
dup
bipush 18
ldc "L3_L"
aastore
dup
bipush 19
12: ldc "L3_V"
aastore
dup
bipush 20
ldc "L4_I"
aastore
dup
bipush 21
ldc "L4_L"
aastore
dup
bipush 22
ldc "L5_L"
aastore
dup
bipush 23
ldc "L6_L"
aastore
dup
bipush 24
ldc "L7_L"
aastore
dup
bipush 25
ldc "L8_L"
aastore
dup
bipush 26
ldc "L9_L"
aastore
dup
bipush 27
13: ldc "L10_L"
aastore
dup
bipush 28
ldc "L10I_L"
aastore
dup
bipush 29
ldc "L10II_L"
aastore
dup
bipush 30
ldc "L10IIL_L"
aastore
dup
bipush 31
ldc "L11_L"
aastore
dup
bipush 32
ldc "L12_L"
aastore
dup
bipush 33
14: ldc "L13_L"
aastore
dup
bipush 34
ldc "L14_L"
aastore
dup
bipush 35
ldc "L14I_L"
aastore
dup
bipush 36
ldc "L14II_L"
aastore
15: invokestatic java.util.Set.of:([Ljava/lang/Object;)Ljava/util/Set;
16: ldc "newInvokeSpecial"
ldc "L_L"
ldc "LL_L"
invokestatic java.util.Set.of:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Set;
17: ldc "invokeSpecialIFC"
ldc "L5_I"
invokestatic java.util.Set.of:(Ljava/lang/Object;)Ljava/util/Set;
18: invokestatic java.util.Map.of:(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;
areturn
LocalVariableTable:
Start End Slot Name Signature
Signature: ()Ljava/util/Map<Ljava/lang/String;Ljava/util/Set<Ljava/lang/String;>;>;
public void configure(java.util.Map<java.lang.String, java.lang.String>);
descriptor: (Ljava/util/Map;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
ldc "generate-jli-classes"
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.String
putfield jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.mainArgument:Ljava/lang/String;
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Ljdk/tools/jlink/internal/plugins/GenerateJLIClassesPlugin;
0 2 1 config Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;
Signature: (Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;)V
MethodParameters:
Name Flags
config
private void addSpeciesType(java.lang.String);
descriptor: (Ljava/lang/String;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.speciesTypes:Ljava/util/TreeSet;
aload 1
invokestatic jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.expandSignature:(Ljava/lang/String;)Ljava/lang/String;
invokevirtual java.util.TreeSet.add:(Ljava/lang/Object;)Z
pop
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Ljdk/tools/jlink/internal/plugins/GenerateJLIClassesPlugin;
0 2 1 type Ljava/lang/String;
MethodParameters:
Name Flags
type
private void addInvokerType(java.lang.String);
descriptor: (Ljava/lang/String;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokevirtual jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.validateMethodType:(Ljava/lang/String;)V
1: aload 0
getfield jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.invokerTypes:Ljava/util/TreeSet;
aload 1
invokevirtual java.util.TreeSet.add:(Ljava/lang/Object;)Z
pop
2: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Ljdk/tools/jlink/internal/plugins/GenerateJLIClassesPlugin;
0 3 1 methodType Ljava/lang/String;
MethodParameters:
Name Flags
methodType
private void addCallSiteType(java.lang.String);
descriptor: (Ljava/lang/String;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokevirtual jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.validateMethodType:(Ljava/lang/String;)V
1: aload 0
getfield jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.callSiteTypes:Ljava/util/TreeSet;
aload 1
invokevirtual java.util.TreeSet.add:(Ljava/lang/Object;)Z
pop
2: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Ljdk/tools/jlink/internal/plugins/GenerateJLIClassesPlugin;
0 3 1 csType Ljava/lang/String;
MethodParameters:
Name Flags
csType
public void initialize(jdk.tools.jlink.plugin.ResourcePool);
descriptor: (Ljdk/tools/jlink/plugin/ResourcePool;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=8, args_size=2
start local 0 start local 1 0: invokestatic jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.defaultSpecies:()Ljava/util/Set;
invokeinterface java.util.Set.stream:()Ljava/util/stream/Stream;
aload 0
invokedynamic accept(Ljdk/tools/jlink/internal/plugins/GenerateJLIClassesPlugin;)Ljava/util/function/Consumer;
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;)V
jdk/tools/jlink/internal/plugins/GenerateJLIClassesPlugin.addSpeciesType(Ljava/lang/String;)V (7)
(Ljava/lang/String;)V
invokeinterface java.util.stream.Stream.forEach:(Ljava/util/function/Consumer;)V
1: invokestatic jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.defaultInvokers:()Ljava/util/Set;
invokeinterface java.util.Set.stream:()Ljava/util/stream/Stream;
aload 0
invokedynamic accept(Ljdk/tools/jlink/internal/plugins/GenerateJLIClassesPlugin;)Ljava/util/function/Consumer;
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;)V
jdk/tools/jlink/internal/plugins/GenerateJLIClassesPlugin.validateMethodType(Ljava/lang/String;)V (7)
(Ljava/lang/String;)V
invokeinterface java.util.stream.Stream.forEach:(Ljava/util/function/Consumer;)V
2: invokestatic jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.defaultCallSiteTypes:()Ljava/util/Set;
invokeinterface java.util.Set.stream:()Ljava/util/stream/Stream;
aload 0
invokedynamic accept(Ljdk/tools/jlink/internal/plugins/GenerateJLIClassesPlugin;)Ljava/util/function/Consumer;
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;)V
jdk/tools/jlink/internal/plugins/GenerateJLIClassesPlugin.addCallSiteType(Ljava/lang/String;)V (7)
(Ljava/lang/String;)V
invokeinterface java.util.stream.Stream.forEach:(Ljava/util/function/Consumer;)V
3: invokestatic jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.defaultDMHMethods:()Ljava/util/Map;
invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
invokeinterface java.util.Set.stream:()Ljava/util/stream/Stream;
aload 0
invokedynamic accept(Ljdk/tools/jlink/internal/plugins/GenerateJLIClassesPlugin;)Ljava/util/function/Consumer;
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;)V
jdk/tools/jlink/internal/plugins/GenerateJLIClassesPlugin.lambda$3(Ljava/util/Map$Entry;)V (7)
(Ljava/util/Map$Entry;)V
invokeinterface java.util.stream.Stream.forEach:(Ljava/util/function/Consumer;)V
4: aload 0
getfield jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.mainArgument:Ljava/lang/String;
ifnull 5
aload 0
getfield jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.mainArgument:Ljava/lang/String;
ldc "@"
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifne 23
5: StackMap locals:
StackMap stack:
aconst_null
astore 5
aconst_null
astore 6
6: aload 0
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
ldc "default_jli_trace.txt"
invokevirtual java.lang.Class.getResourceAsStream:(Ljava/lang/String;)Ljava/io/InputStream;
7: astore 7
start local 7 8: aload 7
ifnull 15
9: aload 0
10: new java.io.BufferedReader
dup
11: new java.io.InputStreamReader
dup
aload 7
invokespecial java.io.InputStreamReader.<init>:(Ljava/io/InputStream;)V
12: invokespecial java.io.BufferedReader.<init>:(Ljava/io/Reader;)V
13: invokevirtual java.io.BufferedReader.lines:()Ljava/util/stream/Stream;
14: invokevirtual jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.readTraceConfig:(Ljava/util/stream/Stream;)V
15: StackMap locals: jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin jdk.tools.jlink.plugin.ResourcePool top top top java.lang.Throwable java.lang.Throwable java.io.InputStream
StackMap stack:
aload 7
ifnull 26
aload 7
invokevirtual java.io.InputStream.close:()V
goto 26
StackMap locals:
StackMap stack: java.lang.Throwable
16: astore 5
aload 7
ifnull 17
aload 7
invokevirtual java.io.InputStream.close:()V
end local 7 StackMap locals:
StackMap stack:
17: aload 5
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
18: astore 6
aload 5
ifnonnull 19
aload 6
astore 5
goto 20
StackMap locals:
StackMap stack:
19: aload 5
aload 6
if_acmpeq 20
aload 5
aload 6
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
20: aload 5
athrow
StackMap locals: jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin jdk.tools.jlink.plugin.ResourcePool
StackMap stack: java.lang.Exception
21: astore 5
start local 5 22: new jdk.tools.jlink.plugin.PluginException
dup
ldc "Couldn't read default_jli_trace.txt"
aload 5
invokespecial jdk.tools.jlink.plugin.PluginException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 5 23: StackMap locals:
StackMap stack:
new java.io.File
dup
aload 0
getfield jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.mainArgument:Ljava/lang/String;
iconst_1
invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
invokespecial java.io.File.<init>:(Ljava/lang/String;)V
astore 5
start local 5 24: aload 5
invokevirtual java.io.File.exists:()Z
ifeq 26
25: aload 0
aload 0
aload 5
invokevirtual jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.fileLines:(Ljava/io/File;)Ljava/util/stream/Stream;
invokevirtual jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.readTraceConfig:(Ljava/util/stream/Stream;)V
end local 5 26: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 27 0 this Ljdk/tools/jlink/internal/plugins/GenerateJLIClassesPlugin;
0 27 1 in Ljdk/tools/jlink/plugin/ResourcePool;
8 17 7 traceFile Ljava/io/InputStream;
22 23 5 e Ljava/lang/Exception;
24 26 5 file Ljava/io/File;
Exception table:
from to target type
8 15 16 any
6 18 18 any
5 21 21 Class java.lang.Exception
MethodParameters:
Name Flags
in
private void readTraceConfig(java.util.stream.Stream<java.lang.String>);
descriptor: (Ljava/util/stream/Stream;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 1
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;
jdk/tools/jlink/internal/plugins/GenerateJLIClassesPlugin.lambda$5(Ljava/lang/String;)[Ljava/lang/String; (6)
(Ljava/lang/String;)[Ljava/lang/String;
invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
1: aload 0
invokedynamic accept(Ljdk/tools/jlink/internal/plugins/GenerateJLIClassesPlugin;)Ljava/util/function/Consumer;
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;)V
jdk/tools/jlink/internal/plugins/GenerateJLIClassesPlugin.lambda$6([Ljava/lang/String;)V (7)
([Ljava/lang/String;)V
invokeinterface java.util.stream.Stream.forEach:(Ljava/util/function/Consumer;)V
2: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Ljdk/tools/jlink/internal/plugins/GenerateJLIClassesPlugin;
0 3 1 lines Ljava/util/stream/Stream<Ljava/lang/String;>;
Signature: (Ljava/util/stream/Stream<Ljava/lang/String;>;)V
MethodParameters:
Name Flags
lines
private void addDMHMethodType(java.lang.String, java.lang.String);
descriptor: (Ljava/lang/String;Ljava/lang/String;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 2
invokevirtual jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.validateMethodType:(Ljava/lang/String;)V
1: aload 0
getfield jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.dmhMethods:Ljava/util/Map;
aload 1
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.util.Set
astore 3
start local 3 2: aload 3
ifnonnull 5
3: new java.util.TreeSet
dup
invokespecial java.util.TreeSet.<init>:()V
astore 3
4: aload 0
getfield jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.dmhMethods:Ljava/util/Map;
aload 1
aload 3
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
5: StackMap locals: java.util.Set
StackMap stack:
aload 3
aload 2
invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
pop
6: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Ljdk/tools/jlink/internal/plugins/GenerateJLIClassesPlugin;
0 7 1 dmh Ljava/lang/String;
0 7 2 methodType Ljava/lang/String;
2 7 3 methodTypes Ljava/util/Set<Ljava/lang/String;>;
MethodParameters:
Name Flags
dmh
methodType
private java.util.stream.Stream<java.lang.String> fileLines(java.io.File);
descriptor: (Ljava/io/File;)Ljava/util/stream/Stream;
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual java.io.File.toPath:()Ljava/nio/file/Path;
invokestatic java.nio.file.Files.lines:(Ljava/nio/file/Path;)Ljava/util/stream/Stream;
1: areturn
2: StackMap locals:
StackMap stack: java.io.IOException
pop
3: new jdk.tools.jlink.plugin.PluginException
dup
ldc "Couldn't read file"
invokespecial jdk.tools.jlink.plugin.PluginException.<init>:(Ljava/lang/String;)V
athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Ljdk/tools/jlink/internal/plugins/GenerateJLIClassesPlugin;
0 4 1 file Ljava/io/File;
Exception table:
from to target type
0 1 2 Class java.io.IOException
Signature: (Ljava/io/File;)Ljava/util/stream/Stream<Ljava/lang/String;>;
MethodParameters:
Name Flags
file
private void validateMethodType(java.lang.String);
descriptor: (Ljava/lang/String;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: aload 1
ldc "_"
invokevirtual java.lang.String.split:(Ljava/lang/String;)[Ljava/lang/String;
astore 2
start local 2 1: aload 2
arraylength
iconst_2
if_icmpne 3
aload 2
iconst_1
aaload
invokevirtual java.lang.String.length:()I
iconst_1
if_icmpne 3
2: ldc "LJIFDV"
aload 2
iconst_1
aaload
iconst_0
invokevirtual java.lang.String.charAt:(I)C
invokevirtual java.lang.String.indexOf:(I)I
iconst_m1
if_icmpne 6
3: StackMap locals: java.lang.String[]
StackMap stack:
new jdk.tools.jlink.plugin.PluginException
dup
4: ldc "Method type signature must be of form [LJIFD]*_[LJIFDV]"
5: invokespecial jdk.tools.jlink.plugin.PluginException.<init>:(Ljava/lang/String;)V
athrow
6: StackMap locals:
StackMap stack:
aload 2
iconst_0
aaload
invokestatic jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.expandSignature:(Ljava/lang/String;)Ljava/lang/String;
pop
7: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Ljdk/tools/jlink/internal/plugins/GenerateJLIClassesPlugin;
0 8 1 type Ljava/lang/String;
1 8 2 typeParts [Ljava/lang/String;
MethodParameters:
Name Flags
type
private static void requireBasicType(char);
descriptor: (C)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=1, args_size=1
start local 0 0: ldc "LIJFD"
iload 0
invokevirtual java.lang.String.indexOf:(I)I
ifge 4
1: new jdk.tools.jlink.plugin.PluginException
dup
2: new java.lang.StringBuilder
dup
ldc "Character "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 0
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
ldc " must correspond to a basic field type: LIJFD"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
3: invokespecial jdk.tools.jlink.plugin.PluginException.<init>:(Ljava/lang/String;)V
athrow
4: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 c C
MethodParameters:
Name Flags
c
public jdk.tools.jlink.plugin.ResourcePool transform(jdk.tools.jlink.plugin.ResourcePool, jdk.tools.jlink.plugin.ResourcePoolBuilder);
descriptor: (Ljdk/tools/jlink/plugin/ResourcePool;Ljdk/tools/jlink/plugin/ResourcePoolBuilder;)Ljdk/tools/jlink/plugin/ResourcePool;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
invokevirtual jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.initialize:(Ljdk/tools/jlink/plugin/ResourcePool;)V
1: aload 1
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;
jdk/tools/jlink/internal/plugins/GenerateJLIClassesPlugin.lambda$7(Ljdk/tools/jlink/plugin/ResourcePoolEntry;)Ljdk/tools/jlink/plugin/ResourcePoolEntry; (6)
(Ljdk/tools/jlink/plugin/ResourcePoolEntry;)Ljdk/tools/jlink/plugin/ResourcePoolEntry;
2: aload 2
3: invokeinterface jdk.tools.jlink.plugin.ResourcePool.transformAndCopy:(Ljava/util/function/Function;Ljdk/tools/jlink/plugin/ResourcePoolBuilder;)V
4: aload 0
getfield jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.speciesTypes:Ljava/util/TreeSet;
aload 0
aload 2
invokedynamic accept(Ljdk/tools/jlink/internal/plugins/GenerateJLIClassesPlugin;Ljdk/tools/jlink/plugin/ResourcePoolBuilder;)Ljava/util/function/Consumer;
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;)V
jdk/tools/jlink/internal/plugins/GenerateJLIClassesPlugin.lambda$8(Ljdk/tools/jlink/plugin/ResourcePoolBuilder;Ljava/lang/String;)V (7)
(Ljava/lang/String;)V
invokevirtual java.util.TreeSet.forEach:(Ljava/util/function/Consumer;)V
5: aload 0
aload 2
invokevirtual jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.generateHolderClasses:(Ljdk/tools/jlink/plugin/ResourcePoolBuilder;)V
6: aload 0
getfield jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.speciesTypes:Ljava/util/TreeSet;
invokevirtual java.util.TreeSet.clear:()V
7: aload 0
getfield jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.invokerTypes:Ljava/util/TreeSet;
invokevirtual java.util.TreeSet.clear:()V
8: aload 0
getfield jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.callSiteTypes:Ljava/util/TreeSet;
invokevirtual java.util.TreeSet.clear:()V
9: aload 0
getfield jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.dmhMethods:Ljava/util/Map;
invokeinterface java.util.Map.clear:()V
10: aload 2
invokeinterface jdk.tools.jlink.plugin.ResourcePoolBuilder.build:()Ljdk/tools/jlink/plugin/ResourcePool;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Ljdk/tools/jlink/internal/plugins/GenerateJLIClassesPlugin;
0 11 1 in Ljdk/tools/jlink/plugin/ResourcePool;
0 11 2 out Ljdk/tools/jlink/plugin/ResourcePoolBuilder;
MethodParameters:
Name Flags
in
out
private void generateBMHClass(java.lang.String, jdk.tools.jlink.plugin.ResourcePoolBuilder);
descriptor: (Ljava/lang/String;Ljdk/tools/jlink/plugin/ResourcePoolBuilder;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=7, args_size=3
start local 0 start local 1 start local 2 0: getstatic jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.JLIA:Ljdk/internal/access/JavaLangInvokeAccess;
aload 1
invokeinterface jdk.internal.access.JavaLangInvokeAccess.generateConcreteBMHClassBytes:(Ljava/lang/String;)Ljava/util/Map$Entry;
1: astore 3
start local 3 2: aload 3
invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
checkcast java.lang.String
astore 4
start local 4 3: aload 3
invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
checkcast byte[]
astore 5
start local 5 4: new java.lang.StringBuilder
dup
ldc "/java.base/"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 4
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc ".class"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
5: aload 5
6: invokestatic jdk.tools.jlink.plugin.ResourcePoolEntry.create:(Ljava/lang/String;[B)Ljdk/tools/jlink/plugin/ResourcePoolEntry;
astore 6
start local 6 7: aload 2
aload 6
invokeinterface jdk.tools.jlink.plugin.ResourcePoolBuilder.add:(Ljdk/tools/jlink/plugin/ResourcePoolEntry;)V
end local 6 end local 5 end local 4 end local 3 8: goto 11
StackMap locals:
StackMap stack: java.lang.Exception
9: astore 3
start local 3 10: new jdk.tools.jlink.plugin.PluginException
dup
aload 3
invokespecial jdk.tools.jlink.plugin.PluginException.<init>:(Ljava/lang/Throwable;)V
athrow
end local 3 11: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Ljdk/tools/jlink/internal/plugins/GenerateJLIClassesPlugin;
0 12 1 types Ljava/lang/String;
0 12 2 out Ljdk/tools/jlink/plugin/ResourcePoolBuilder;
2 8 3 result Ljava/util/Map$Entry<Ljava/lang/String;[B>;
3 8 4 className Ljava/lang/String;
4 8 5 bytes [B
7 8 6 ndata Ljdk/tools/jlink/plugin/ResourcePoolEntry;
10 11 3 ex Ljava/lang/Exception;
Exception table:
from to target type
0 8 9 Class java.lang.Exception
MethodParameters:
Name Flags
types
out
private void generateHolderClasses(jdk.tools.jlink.plugin.ResourcePoolBuilder);
descriptor: (Ljdk/tools/jlink/plugin/ResourcePoolBuilder;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=13, args_size=2
start local 0 start local 1 0: iconst_0
istore 2
start local 2 1: aload 0
getfield jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.dmhMethods:Ljava/util/Map;
invokeinterface java.util.Map.values:()Ljava/util/Collection;
invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
astore 4
goto 4
StackMap locals: jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin jdk.tools.jlink.plugin.ResourcePoolBuilder int top java.util.Iterator
StackMap stack:
2: aload 4
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.util.Set
astore 3
start local 3 3: iload 2
aload 3
invokeinterface java.util.Set.size:()I
iadd
istore 2
end local 3 4: StackMap locals:
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 2
5: iload 2
anewarray java.lang.invoke.MethodType
astore 3
start local 3 6: iload 2
newarray 10
astore 4
start local 4 7: iconst_0
istore 5
start local 5 8: aload 0
getfield jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.dmhMethods:Ljava/util/Map;
invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 7
goto 30
StackMap locals: jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin jdk.tools.jlink.plugin.ResourcePoolBuilder int java.lang.invoke.MethodType[] int[] int top java.util.Iterator
StackMap stack:
9: aload 7
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.util.Map$Entry
astore 6
start local 6 10: aload 6
invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
checkcast java.lang.String
astore 8
start local 8 11: aload 6
invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
checkcast java.util.Set
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 10
goto 29
StackMap locals: jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin jdk.tools.jlink.plugin.ResourcePoolBuilder int java.lang.invoke.MethodType[] int[] int java.util.Map$Entry java.util.Iterator java.lang.String top java.util.Iterator
StackMap stack:
12: aload 10
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.lang.String
astore 9
start local 9 13: aload 9
invokestatic jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.asMethodType:(Ljava/lang/String;)Ljava/lang/invoke/MethodType;
astore 11
start local 11 14: aload 11
invokevirtual java.lang.invoke.MethodType.parameterCount:()I
iconst_1
if_icmplt 16
15: aload 11
iconst_0
invokevirtual java.lang.invoke.MethodType.parameterType:(I)Ljava/lang/Class;
ldc Ljava/lang/Object;
if_acmpeq 19
16: StackMap locals: jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin jdk.tools.jlink.plugin.ResourcePoolBuilder int java.lang.invoke.MethodType[] int[] int java.util.Map$Entry java.util.Iterator java.lang.String java.lang.String java.util.Iterator java.lang.invoke.MethodType
StackMap stack:
new jdk.tools.jlink.plugin.PluginException
dup
17: new java.lang.StringBuilder
dup
ldc "DMH type parameter must start with L: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 8
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc " "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 9
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
18: invokespecial jdk.tools.jlink.plugin.PluginException.<init>:(Ljava/lang/String;)V
athrow
19: StackMap locals:
StackMap stack:
aload 3
iload 5
aload 11
iconst_0
iconst_1
invokevirtual java.lang.invoke.MethodType.dropParameterTypes:(II)Ljava/lang/invoke/MethodType;
aastore
20: aload 4
iload 5
getstatic jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.DMH_METHOD_TYPE_MAP:Ljava/util/Map;
aload 8
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.Integer
invokevirtual java.lang.Integer.intValue:()I
iastore
21: aload 4
iload 5
iaload
getstatic jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.DMH_INVOKE_INTERFACE_TYPE:I
if_icmpeq 23
22: aload 4
iload 5
iaload
getstatic jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.DMH_INVOKE_VIRTUAL_TYPE:I
if_icmpne 28
23: StackMap locals:
StackMap stack:
aload 11
invokevirtual java.lang.invoke.MethodType.parameterCount:()I
iconst_2
if_icmplt 25
24: aload 11
iconst_1
invokevirtual java.lang.invoke.MethodType.parameterType:(I)Ljava/lang/Class;
ldc Ljava/lang/Object;
if_acmpeq 28
25: StackMap locals:
StackMap stack:
new jdk.tools.jlink.plugin.PluginException
dup
26: new java.lang.StringBuilder
dup
ldc "DMH type parameter must start with LL: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 8
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc " "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 9
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
27: invokespecial jdk.tools.jlink.plugin.PluginException.<init>:(Ljava/lang/String;)V
athrow
28: StackMap locals:
StackMap stack:
iinc 5 1
end local 11 end local 9 29: StackMap locals: jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin jdk.tools.jlink.plugin.ResourcePoolBuilder int java.lang.invoke.MethodType[] int[] int java.util.Map$Entry java.util.Iterator java.lang.String top java.util.Iterator
StackMap stack:
aload 10
invokeinterface java.util.Iterator.hasNext:()Z
ifne 12
end local 8 end local 6 30: StackMap locals: jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin jdk.tools.jlink.plugin.ResourcePoolBuilder int java.lang.invoke.MethodType[] int[] int top java.util.Iterator
StackMap stack:
aload 7
invokeinterface java.util.Iterator.hasNext:()Z
ifne 9
31: aload 0
getfield jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.invokerTypes:Ljava/util/TreeSet;
invokevirtual java.util.TreeSet.size:()I
anewarray java.lang.invoke.MethodType
astore 6
start local 6 32: iconst_0
istore 7
start local 7 33: aload 0
getfield jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.invokerTypes:Ljava/util/TreeSet;
invokevirtual java.util.TreeSet.iterator:()Ljava/util/Iterator;
astore 9
goto 46
StackMap locals: jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin jdk.tools.jlink.plugin.ResourcePoolBuilder int java.lang.invoke.MethodType[] int[] int java.lang.invoke.MethodType[] int top java.util.Iterator
StackMap stack:
34: aload 9
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.lang.String
astore 8
start local 8 35: aload 8
invokestatic jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.asMethodType:(Ljava/lang/String;)Ljava/lang/invoke/MethodType;
astore 10
start local 10 36: aload 10
invokevirtual java.lang.invoke.MethodType.parameterCount:()I
iconst_1
isub
istore 11
start local 11 37: aload 10
invokevirtual java.lang.invoke.MethodType.parameterCount:()I
iconst_2
if_icmplt 40
38: aload 10
iconst_0
invokevirtual java.lang.invoke.MethodType.parameterType:(I)Ljava/lang/Class;
ldc Ljava/lang/Object;
if_acmpne 40
39: aload 10
iload 11
invokevirtual java.lang.invoke.MethodType.parameterType:(I)Ljava/lang/Class;
ldc Ljava/lang/Object;
if_acmpeq 43
40: StackMap locals: jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin jdk.tools.jlink.plugin.ResourcePoolBuilder int java.lang.invoke.MethodType[] int[] int java.lang.invoke.MethodType[] int java.lang.String java.util.Iterator java.lang.invoke.MethodType int
StackMap stack:
new jdk.tools.jlink.plugin.PluginException
dup
41: new java.lang.StringBuilder
dup
ldc "Invoker type parameter must start and end with Object: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 8
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
42: invokespecial jdk.tools.jlink.plugin.PluginException.<init>:(Ljava/lang/String;)V
athrow
43: StackMap locals:
StackMap stack:
aload 10
iload 11
iload 11
iconst_1
iadd
invokevirtual java.lang.invoke.MethodType.dropParameterTypes:(II)Ljava/lang/invoke/MethodType;
astore 10
44: aload 6
iload 7
aload 10
iconst_0
iconst_1
invokevirtual java.lang.invoke.MethodType.dropParameterTypes:(II)Ljava/lang/invoke/MethodType;
aastore
45: iinc 7 1
end local 11 end local 10 end local 8 46: StackMap locals: jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin jdk.tools.jlink.plugin.ResourcePoolBuilder int java.lang.invoke.MethodType[] int[] int java.lang.invoke.MethodType[] int top java.util.Iterator
StackMap stack:
aload 9
invokeinterface java.util.Iterator.hasNext:()Z
ifne 34
47: aload 0
getfield jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.callSiteTypes:Ljava/util/TreeSet;
invokevirtual java.util.TreeSet.size:()I
anewarray java.lang.invoke.MethodType
astore 8
start local 8 48: iconst_0
istore 7
49: aload 0
getfield jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.callSiteTypes:Ljava/util/TreeSet;
invokevirtual java.util.TreeSet.iterator:()Ljava/util/Iterator;
astore 10
goto 60
StackMap locals: jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin jdk.tools.jlink.plugin.ResourcePoolBuilder int java.lang.invoke.MethodType[] int[] int java.lang.invoke.MethodType[] int java.lang.invoke.MethodType[] top java.util.Iterator
StackMap stack:
50: aload 10
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.lang.String
astore 9
start local 9 51: aload 9
invokestatic jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.asMethodType:(Ljava/lang/String;)Ljava/lang/invoke/MethodType;
astore 11
start local 11 52: aload 11
invokevirtual java.lang.invoke.MethodType.parameterCount:()I
iconst_1
isub
istore 12
start local 12 53: aload 11
invokevirtual java.lang.invoke.MethodType.parameterCount:()I
iconst_1
if_icmplt 55
54: aload 11
iload 12
invokevirtual java.lang.invoke.MethodType.parameterType:(I)Ljava/lang/Class;
ldc Ljava/lang/Object;
if_acmpeq 58
55: StackMap locals: jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin jdk.tools.jlink.plugin.ResourcePoolBuilder int java.lang.invoke.MethodType[] int[] int java.lang.invoke.MethodType[] int java.lang.invoke.MethodType[] java.lang.String java.util.Iterator java.lang.invoke.MethodType int
StackMap stack:
new jdk.tools.jlink.plugin.PluginException
dup
56: new java.lang.StringBuilder
dup
ldc "CallSite type parameter must end with Object: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 9
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
57: invokespecial jdk.tools.jlink.plugin.PluginException.<init>:(Ljava/lang/String;)V
athrow
58: StackMap locals:
StackMap stack:
aload 8
iload 7
aload 11
iload 12
iload 12
iconst_1
iadd
invokevirtual java.lang.invoke.MethodType.dropParameterTypes:(II)Ljava/lang/invoke/MethodType;
aastore
59: iinc 7 1
end local 12 end local 11 end local 9 60: StackMap locals: jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin jdk.tools.jlink.plugin.ResourcePoolBuilder int java.lang.invoke.MethodType[] int[] int java.lang.invoke.MethodType[] int java.lang.invoke.MethodType[] top java.util.Iterator
StackMap stack:
aload 10
invokeinterface java.util.Iterator.hasNext:()Z
ifne 50
61: getstatic jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.JLIA:Ljdk/internal/access/JavaLangInvokeAccess;
62: ldc "java/lang/invoke/DirectMethodHandle$Holder"
aload 3
aload 4
63: invokeinterface jdk.internal.access.JavaLangInvokeAccess.generateDirectMethodHandleHolderClassBytes:(Ljava/lang/String;[Ljava/lang/invoke/MethodType;[I)[B
astore 9
start local 9 64: ldc "/java.base/java/lang/invoke/DirectMethodHandle$Holder.class"
aload 9
invokestatic jdk.tools.jlink.plugin.ResourcePoolEntry.create:(Ljava/lang/String;[B)Ljdk/tools/jlink/plugin/ResourcePoolEntry;
65: astore 10
start local 10 66: aload 1
aload 10
invokeinterface jdk.tools.jlink.plugin.ResourcePoolBuilder.add:(Ljdk/tools/jlink/plugin/ResourcePoolEntry;)V
67: getstatic jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.JLIA:Ljdk/internal/access/JavaLangInvokeAccess;
68: ldc "java/lang/invoke/DelegatingMethodHandle$Holder"
aload 3
69: invokeinterface jdk.internal.access.JavaLangInvokeAccess.generateDelegatingMethodHandleHolderClassBytes:(Ljava/lang/String;[Ljava/lang/invoke/MethodType;)[B
astore 9
70: ldc "/java.base/java/lang/invoke/DelegatingMethodHandle$Holder.class"
aload 9
invokestatic jdk.tools.jlink.plugin.ResourcePoolEntry.create:(Ljava/lang/String;[B)Ljdk/tools/jlink/plugin/ResourcePoolEntry;
astore 10
71: aload 1
aload 10
invokeinterface jdk.tools.jlink.plugin.ResourcePoolBuilder.add:(Ljdk/tools/jlink/plugin/ResourcePoolEntry;)V
72: getstatic jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.JLIA:Ljdk/internal/access/JavaLangInvokeAccess;
getstatic jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.INVOKERS_HOLDER_INTERNAL_NAME:Ljava/lang/String;
73: aload 6
aload 8
74: invokeinterface jdk.internal.access.JavaLangInvokeAccess.generateInvokersHolderClassBytes:(Ljava/lang/String;[Ljava/lang/invoke/MethodType;[Ljava/lang/invoke/MethodType;)[B
astore 9
75: getstatic jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.INVOKERS_HOLDER_ENTRY:Ljava/lang/String;
aload 9
invokestatic jdk.tools.jlink.plugin.ResourcePoolEntry.create:(Ljava/lang/String;[B)Ljdk/tools/jlink/plugin/ResourcePoolEntry;
astore 10
76: aload 1
aload 10
invokeinterface jdk.tools.jlink.plugin.ResourcePoolBuilder.add:(Ljdk/tools/jlink/plugin/ResourcePoolEntry;)V
77: getstatic jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.JLIA:Ljdk/internal/access/JavaLangInvokeAccess;
ldc "java/lang/invoke/LambdaForm$Holder"
invokeinterface jdk.internal.access.JavaLangInvokeAccess.generateBasicFormsClassBytes:(Ljava/lang/String;)[B
astore 9
78: ldc "/java.base/java/lang/invoke/LambdaForm$Holder.class"
aload 9
invokestatic jdk.tools.jlink.plugin.ResourcePoolEntry.create:(Ljava/lang/String;[B)Ljdk/tools/jlink/plugin/ResourcePoolEntry;
astore 10
79: aload 1
aload 10
invokeinterface jdk.tools.jlink.plugin.ResourcePoolBuilder.add:(Ljdk/tools/jlink/plugin/ResourcePoolEntry;)V
end local 10 end local 9 80: goto 83
StackMap locals: jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin jdk.tools.jlink.plugin.ResourcePoolBuilder int java.lang.invoke.MethodType[] int[] int java.lang.invoke.MethodType[] int java.lang.invoke.MethodType[]
StackMap stack: java.lang.Exception
81: astore 9
start local 9 82: new jdk.tools.jlink.plugin.PluginException
dup
aload 9
invokespecial jdk.tools.jlink.plugin.PluginException.<init>:(Ljava/lang/Throwable;)V
athrow
end local 9 83: StackMap locals:
StackMap stack:
return
end local 8 end local 7 end local 6 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 84 0 this Ljdk/tools/jlink/internal/plugins/GenerateJLIClassesPlugin;
0 84 1 out Ljdk/tools/jlink/plugin/ResourcePoolBuilder;
1 84 2 count I
3 4 3 entry Ljava/util/Set<Ljava/lang/String;>;
6 84 3 directMethodTypes [Ljava/lang/invoke/MethodType;
7 84 4 dmhTypes [I
8 84 5 index I
10 30 6 entry Ljava/util/Map$Entry<Ljava/lang/String;Ljava/util/Set<Ljava/lang/String;>;>;
11 30 8 dmhType Ljava/lang/String;
13 29 9 type Ljava/lang/String;
14 29 11 mt Ljava/lang/invoke/MethodType;
32 84 6 invokerMethodTypes [Ljava/lang/invoke/MethodType;
33 84 7 i I
35 46 8 invokerType Ljava/lang/String;
36 46 10 mt Ljava/lang/invoke/MethodType;
37 46 11 lastParam I
48 84 8 callSiteMethodTypes [Ljava/lang/invoke/MethodType;
51 60 9 callSiteType Ljava/lang/String;
52 60 11 mt Ljava/lang/invoke/MethodType;
53 60 12 lastParam I
64 80 9 bytes [B
66 80 10 ndata Ljdk/tools/jlink/plugin/ResourcePoolEntry;
82 83 9 ex Ljava/lang/Exception;
Exception table:
from to target type
61 80 81 Class java.lang.Exception
MethodParameters:
Name Flags
out
public static java.lang.String expandSignature(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/lang/String;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=7, args_size=1
start local 0 0: new java.lang.StringBuilder
dup
invokespecial java.lang.StringBuilder.<init>:()V
astore 1
start local 1 1: bipush 88
istore 2
start local 2 2: iconst_0
istore 3
start local 3 3: iconst_0
istore 4
start local 4 4: goto 20
5: StackMap locals: java.lang.String java.lang.StringBuilder int int int
StackMap stack:
aload 0
iload 4
invokevirtual java.lang.String.charAt:(I)C
istore 5
start local 5 6: iload 5
bipush 48
if_icmplt 10
iload 5
bipush 57
if_icmpgt 10
7: iload 3
bipush 10
imul
istore 3
8: iload 3
iload 5
bipush 48
isub
iadd
istore 3
9: goto 19
10: StackMap locals: int
StackMap stack:
iload 5
invokestatic jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.requireBasicType:(C)V
11: iconst_1
istore 6
start local 6 12: goto 15
13: StackMap locals: int
StackMap stack:
aload 1
iload 2
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
pop
14: iinc 6 1
StackMap locals:
StackMap stack:
15: iload 6
iload 3
if_icmplt 13
end local 6 16: aload 1
iload 5
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
pop
17: iload 5
istore 2
18: iconst_0
istore 3
end local 5 19: StackMap locals:
StackMap stack:
iinc 4 1
StackMap locals:
StackMap stack:
20: iload 4
aload 0
invokevirtual java.lang.String.length:()I
if_icmplt 5
end local 4 21: iload 3
iconst_1
if_icmple 28
22: iload 2
invokestatic jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.requireBasicType:(C)V
23: iconst_1
istore 4
start local 4 24: goto 27
25: StackMap locals:
StackMap stack:
aload 1
iload 2
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
pop
26: iinc 4 1
StackMap locals:
StackMap stack:
27: iload 4
iload 3
if_icmplt 25
end local 4 28: StackMap locals:
StackMap stack:
aload 1
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 29 0 signature Ljava/lang/String;
1 29 1 sb Ljava/lang/StringBuilder;
2 29 2 last C
3 29 3 count I
4 21 4 i I
6 19 5 c C
12 16 6 j I
24 28 4 j I
MethodParameters:
Name Flags
signature
private static java.lang.invoke.MethodType asMethodType(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/lang/invoke/MethodType;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=6, 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: getstatic jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.$assertionsDisabled:Z
ifne 2
aload 1
arraylength
iconst_2
if_icmpeq 2
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
2: StackMap locals: java.lang.String[]
StackMap stack:
getstatic jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.$assertionsDisabled:Z
ifne 3
aload 1
iconst_1
aaload
invokevirtual java.lang.String.length:()I
iconst_1
if_icmpeq 3
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
3: StackMap locals:
StackMap stack:
aload 1
iconst_0
aaload
invokestatic jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.expandSignature:(Ljava/lang/String;)Ljava/lang/String;
astore 2
start local 2 4: aload 1
iconst_1
aaload
iconst_0
invokevirtual java.lang.String.charAt:(I)C
invokestatic jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.simpleType:(C)Ljava/lang/Class;
astore 3
start local 3 5: aload 2
invokevirtual java.lang.String.isEmpty:()Z
ifeq 7
6: aload 3
invokestatic java.lang.invoke.MethodType.methodType:(Ljava/lang/Class;)Ljava/lang/invoke/MethodType;
areturn
7: StackMap locals: java.lang.String java.lang.Class
StackMap stack:
aload 2
invokevirtual java.lang.String.length:()I
anewarray java.lang.Class
astore 4
start local 4 8: iconst_0
istore 5
start local 5 9: goto 12
10: StackMap locals: java.lang.Class[] int
StackMap stack:
aload 4
iload 5
aload 2
iload 5
invokevirtual java.lang.String.charAt:(I)C
invokestatic jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.simpleType:(C)Ljava/lang/Class;
aastore
11: iinc 5 1
StackMap locals:
StackMap stack:
12: iload 5
aload 4
arraylength
if_icmplt 10
end local 5 13: aload 3
aload 4
invokestatic java.lang.invoke.MethodType.methodType:(Ljava/lang/Class;[Ljava/lang/Class;)Ljava/lang/invoke/MethodType;
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 basicSignatureString Ljava/lang/String;
1 14 1 parts [Ljava/lang/String;
4 14 2 parameters Ljava/lang/String;
5 14 3 rtype Ljava/lang/Class<*>;
8 14 4 ptypes [Ljava/lang/Class;
9 13 5 i I
MethodParameters:
Name Flags
basicSignatureString
private static java.lang.Class<?> simpleType(char);
descriptor: (C)Ljava/lang/Class;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=1, args_size=1
start local 0 0: iload 0
tableswitch { // 66 - 90
66: 7
67: 7
68: 2
69: 10
70: 1
71: 10
72: 10
73: 3
74: 5
75: 10
76: 4
77: 10
78: 10
79: 10
80: 10
81: 10
82: 10
83: 7
84: 10
85: 10
86: 6
87: 10
88: 10
89: 10
90: 7
default: 10
}
1: StackMap locals:
StackMap stack:
getstatic java.lang.Float.TYPE:Ljava/lang/Class;
areturn
2: StackMap locals:
StackMap stack:
getstatic java.lang.Double.TYPE:Ljava/lang/Class;
areturn
3: StackMap locals:
StackMap stack:
getstatic java.lang.Integer.TYPE:Ljava/lang/Class;
areturn
4: StackMap locals:
StackMap stack:
ldc Ljava/lang/Object;
areturn
5: StackMap locals:
StackMap stack:
getstatic java.lang.Long.TYPE:Ljava/lang/Class;
areturn
6: StackMap locals:
StackMap stack:
getstatic java.lang.Void.TYPE:Ljava/lang/Class;
areturn
7: StackMap locals:
StackMap stack:
new java.lang.IllegalArgumentException
dup
new java.lang.StringBuilder
dup
ldc "Not a valid primitive: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 0
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
8: ldc " (use I instead)"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
9: invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
10: StackMap locals:
StackMap stack:
new java.lang.IllegalArgumentException
dup
new java.lang.StringBuilder
dup
ldc "Not a primitive: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 0
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 c C
Signature: (C)Ljava/lang/Class<*>;
MethodParameters:
Name Flags
c
private void lambda$3(java.util.Map$Entry);
descriptor: (Ljava/util/Map$Entry;)V
flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 1
invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
checkcast java.util.Set
invokeinterface java.util.Set.stream:()Ljava/util/stream/Stream;
aload 0
aload 1
invokedynamic accept(Ljdk/tools/jlink/internal/plugins/GenerateJLIClassesPlugin;Ljava/util/Map$Entry;)Ljava/util/function/Consumer;
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;)V
jdk/tools/jlink/internal/plugins/GenerateJLIClassesPlugin.lambda$4(Ljava/util/Map$Entry;Ljava/lang/String;)V (7)
(Ljava/lang/String;)V
invokeinterface java.util.stream.Stream.forEach:(Ljava/util/function/Consumer;)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Ljdk/tools/jlink/internal/plugins/GenerateJLIClassesPlugin;
0 2 1 e Ljava/util/Map$Entry<Ljava/lang/String;Ljava/util/Set<Ljava/lang/String;>;>;
private static java.lang.String[] lambda$5(java.lang.String);
descriptor: (Ljava/lang/String;)[Ljava/lang/String;
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
ldc " "
invokevirtual java.lang.String.split:(Ljava/lang/String;)[Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 line Ljava/lang/String;
private void lambda$6(java.lang.String[]);
descriptor: ([Ljava/lang/String;)V
flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
Code:
stack=3, locals=5, args_size=2
start local 0 start local 1 0: aload 1
iconst_0
aaload
dup
astore 2
invokevirtual java.lang.String.hashCode:()I
lookupswitch { // 2
-685835729: 1
-606951941: 2
default: 21
}
StackMap locals: java.lang.String
StackMap stack:
1: aload 2
ldc "[SPECIES_RESOLVE]"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 3
goto 21
StackMap locals:
StackMap stack:
2: aload 2
ldc "[LF_RESOLVE]"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 8
goto 21
3: StackMap locals:
StackMap stack:
aload 1
arraylength
iconst_3
if_icmpne 21
aload 1
iconst_1
aaload
ldc "java.lang.invoke.BoundMethodHandle$Species_"
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 21
4: aload 1
iconst_1
aaload
ldc "java.lang.invoke.BoundMethodHandle$Species_"
invokevirtual java.lang.String.length:()I
invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
astore 3
start local 3 5: ldc "L"
aload 3
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 21
6: aload 0
aload 3
invokevirtual jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.addSpeciesType:(Ljava/lang/String;)V
end local 3 7: goto 21
8: StackMap locals:
StackMap stack:
aload 1
iconst_3
aaload
astore 3
start local 3 9: aload 1
iconst_1
aaload
ldc "java.lang.invoke.Invokers$Holder"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 16
10: ldc "linkToTargetMethod"
aload 1
iconst_2
aaload
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 12
11: ldc "linkToCallSite"
aload 1
iconst_2
aaload
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 14
12: StackMap locals: java.lang.String
StackMap stack:
aload 0
aload 3
invokevirtual jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.addCallSiteType:(Ljava/lang/String;)V
13: goto 21
14: StackMap locals:
StackMap stack:
aload 0
aload 3
invokevirtual jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.addInvokerType:(Ljava/lang/String;)V
15: goto 21
StackMap locals:
StackMap stack:
16: aload 1
iconst_1
aaload
ldc "DirectMethodHandle"
invokevirtual java.lang.String.contains:(Ljava/lang/CharSequence;)Z
ifeq 21
17: aload 1
iconst_2
aaload
astore 4
start local 4 18: getstatic jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.DMH_METHOD_TYPE_MAP:Ljava/util/Map;
aload 4
invokeinterface java.util.Map.containsKey:(Ljava/lang/Object;)Z
ifeq 21
19: aload 0
aload 4
aload 3
invokevirtual jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.addDMHMethodType:(Ljava/lang/String;Ljava/lang/String;)V
end local 4 20: goto 21
end local 3 21: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 22 0 this Ljdk/tools/jlink/internal/plugins/GenerateJLIClassesPlugin;
0 22 1 parts [Ljava/lang/String;
5 7 3 species Ljava/lang/String;
9 21 3 methodType Ljava/lang/String;
18 20 4 dmh Ljava/lang/String;
private static jdk.tools.jlink.plugin.ResourcePoolEntry lambda$7(jdk.tools.jlink.plugin.ResourcePoolEntry);
descriptor: (Ljdk/tools/jlink/plugin/ResourcePoolEntry;)Ljdk/tools/jlink/plugin/ResourcePoolEntry;
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=2, locals=2, args_size=1
start local 0 0: aload 0
invokeinterface jdk.tools.jlink.plugin.ResourcePoolEntry.path:()Ljava/lang/String;
astore 1
start local 1 1: aload 1
ldc "/java.base/java/lang/invoke/DirectMethodHandle$Holder.class"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 5
2: aload 1
ldc "/java.base/java/lang/invoke/DelegatingMethodHandle$Holder.class"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 5
3: aload 1
getstatic jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.INVOKERS_HOLDER_ENTRY:Ljava/lang/String;
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 5
4: aload 1
ldc "/java.base/java/lang/invoke/LambdaForm$Holder.class"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 6
5: StackMap locals: java.lang.String
StackMap stack:
aconst_null
areturn
6: StackMap locals:
StackMap stack:
aload 0
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 entry Ljdk/tools/jlink/plugin/ResourcePoolEntry;
1 7 1 path Ljava/lang/String;
private void lambda$8(jdk.tools.jlink.plugin.ResourcePoolBuilder, java.lang.String);
descriptor: (Ljdk/tools/jlink/plugin/ResourcePoolBuilder;Ljava/lang/String;)V
flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
Code:
stack=3, locals=3, args_size=3
start local 0 start local 2 0: aload 0
aload 2
aload 1
invokevirtual jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.generateBMHClass:(Ljava/lang/String;Ljdk/tools/jlink/plugin/ResourcePoolBuilder;)V
return
end local 2 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljdk/tools/jlink/internal/plugins/GenerateJLIClassesPlugin;
0 1 2 types Ljava/lang/String;
private void lambda$4(java.util.Map$Entry, java.lang.String);
descriptor: (Ljava/util/Map$Entry;Ljava/lang/String;)V
flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
Code:
stack=3, locals=3, args_size=3
start local 0 start local 2 0: aload 0
aload 1
invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
checkcast java.lang.String
aload 2
invokevirtual jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.addDMHMethodType:(Ljava/lang/String;Ljava/lang/String;)V
return
end local 2 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljdk/tools/jlink/internal/plugins/GenerateJLIClassesPlugin;
0 1 2 type Ljava/lang/String;
}
SourceFile: "GenerateJLIClassesPlugin.java"
InnerClasses:
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 final State = jdk.tools.jlink.plugin.Plugin$State of jdk.tools.jlink.plugin.Plugin