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.misc.JavaLangInvokeAccess JLIA;
descriptor: Ljdk/internal/misc/JavaLangInvokeAccess;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
java.util.Set<java.lang.String> speciesTypes;
descriptor: Ljava/util/Set;
flags: (0x0000)
Signature: Ljava/util/Set<Ljava/lang/String;>;
java.util.Set<java.lang.String> invokerTypes;
descriptor: Ljava/util/Set;
flags: (0x0000)
Signature: Ljava/util/Set<Ljava/lang/String;>;
java.util.Set<java.lang.String> callSiteTypes;
descriptor: Ljava/util/Set;
flags: (0x0000)
Signature: Ljava/util/Set<Ljava/lang/String;>;
java.util.Map<java.lang.String, java.util.Set<java.lang.String>> dmhMethods;
descriptor: Ljava/util/Map;
flags: (0x0000)
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 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.misc.SharedSecrets.getJavaLangInvokeAccess:()Ljdk/internal/misc/JavaLangInvokeAccess;
6: putstatic jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.JLIA:Ljdk/internal/misc/JavaLangInvokeAccess;
7: ldc "invokeVirtual"
iconst_0
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
8: ldc "invokeStatic"
iconst_1
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
9: ldc "invokeSpecial"
iconst_2
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
10: ldc "newInvokeSpecial"
iconst_3
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
11: ldc "invokeInterface"
iconst_4
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
12: ldc "invokeStaticInit"
iconst_5
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
13: ldc "invokeSpecialIFC"
bipush 20
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
14: 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;
15: putstatic jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.DMH_METHOD_TYPE_MAP:Ljava/util/Map;
16: 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;
17: putstatic jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.INVOKERS_HOLDER_ENTRY:Ljava/lang/String;
18: return
LocalVariableTable:
Start End Slot Name Signature
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
invokestatic java.util.Set.of:()Ljava/util/Set;
putfield jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.speciesTypes:Ljava/util/Set;
2: aload 0
invokestatic java.util.Set.of:()Ljava/util/Set;
putfield jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.invokerTypes:Ljava/util/Set;
3: aload 0
invokestatic java.util.Set.of:()Ljava/util/Set;
putfield jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.callSiteTypes:Ljava/util/Set;
4: aload 0
invokestatic java.util.Map.of:()Ljava/util/Map;
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 "L_L"
ldc "LL_L"
ldc "LLI_I"
ldc "L3_V"
invokestatic java.util.Set.of:(Ljava/lang/Object;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
public void initialize(jdk.tools.jlink.plugin.ResourcePool);
descriptor: (Ljdk/tools/jlink/plugin/ResourcePool;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=5, args_size=2
start local 0 start local 1 0: aload 0
invokestatic jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.defaultSpecies:()Ljava/util/Set;
invokeinterface java.util.Set.stream:()Ljava/util/stream/Stream;
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$0(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;
2: invokestatic java.util.stream.Collectors.toSet:()Ljava/util/stream/Collector;
invokeinterface java.util.stream.Stream.collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;
checkcast java.util.Set
3: putfield jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.speciesTypes:Ljava/util/Set;
4: aload 0
invokestatic jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.defaultInvokers:()Ljava/util/Set;
putfield jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.invokerTypes:Ljava/util/Set;
5: aload 0
aload 0
getfield jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.invokerTypes:Ljava/util/Set;
invokevirtual jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.validateMethodTypes:(Ljava/util/Set;)V
6: aload 0
invokestatic jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.defaultCallSiteTypes:()Ljava/util/Set;
putfield jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.callSiteTypes:Ljava/util/Set;
7: aload 0
invokestatic jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.defaultDMHMethods:()Ljava/util/Map;
putfield jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.dmhMethods:Ljava/util/Map;
8: 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 3
goto 11
StackMap locals: jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin jdk.tools.jlink.plugin.ResourcePool top java.util.Iterator
StackMap stack:
9: aload 3
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.util.Set
astore 2
start local 2 10: aload 0
aload 2
invokevirtual jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.validateMethodTypes:(Ljava/util/Set;)V
end local 2 11: StackMap locals:
StackMap stack:
aload 3
invokeinterface java.util.Iterator.hasNext:()Z
ifne 9
12: aload 0
getfield jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.mainArgument:Ljava/lang/String;
ifnull 13
aload 0
getfield jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.mainArgument:Ljava/lang/String;
ldc "@"
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifne 31
13: StackMap locals: jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin jdk.tools.jlink.plugin.ResourcePool
StackMap stack:
aconst_null
astore 2
aconst_null
astore 3
14: 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;
15: astore 4
start local 4 16: aload 4
ifnull 23
17: aload 0
18: new java.io.BufferedReader
dup
19: new java.io.InputStreamReader
dup
aload 4
invokespecial java.io.InputStreamReader.<init>:(Ljava/io/InputStream;)V
20: invokespecial java.io.BufferedReader.<init>:(Ljava/io/Reader;)V
21: invokevirtual java.io.BufferedReader.lines:()Ljava/util/stream/Stream;
22: invokevirtual jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.readTraceConfig:(Ljava/util/stream/Stream;)V
23: StackMap locals: java.lang.Throwable java.lang.Throwable java.io.InputStream
StackMap stack:
aload 4
ifnull 34
aload 4
invokevirtual java.io.InputStream.close:()V
goto 34
StackMap locals:
StackMap stack: java.lang.Throwable
24: astore 2
aload 4
ifnull 25
aload 4
invokevirtual java.io.InputStream.close:()V
end local 4 StackMap locals:
StackMap stack:
25: aload 2
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
26: astore 3
aload 2
ifnonnull 27
aload 3
astore 2
goto 28
StackMap locals:
StackMap stack:
27: aload 2
aload 3
if_acmpeq 28
aload 2
aload 3
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
28: aload 2
athrow
StackMap locals: jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin jdk.tools.jlink.plugin.ResourcePool
StackMap stack: java.lang.Exception
29: astore 2
start local 2 30: new jdk.tools.jlink.plugin.PluginException
dup
ldc "Couldn't read default_jli_trace.txt"
aload 2
invokespecial jdk.tools.jlink.plugin.PluginException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 2 31: 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 2
start local 2 32: aload 2
invokevirtual java.io.File.exists:()Z
ifeq 34
33: aload 0
aload 0
aload 2
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 2 34: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 35 0 this Ljdk/tools/jlink/internal/plugins/GenerateJLIClassesPlugin;
0 35 1 in Ljdk/tools/jlink/plugin/ResourcePool;
10 11 2 dmhMethodTypes Ljava/util/Set<Ljava/lang/String;>;
16 25 4 traceFile Ljava/io/InputStream;
30 31 2 e Ljava/lang/Exception;
32 34 2 file Ljava/io/File;
Exception table:
from to target type
16 23 24 any
14 26 26 any
13 29 29 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=5, locals=5, args_size=2
start local 0 start local 1 0: aload 0
new java.util.TreeSet
dup
aload 0
getfield jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.speciesTypes:Ljava/util/Set;
invokespecial java.util.TreeSet.<init>:(Ljava/util/Collection;)V
putfield jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.speciesTypes:Ljava/util/Set;
1: aload 0
new java.util.TreeSet
dup
aload 0
getfield jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.invokerTypes:Ljava/util/Set;
invokespecial java.util.TreeSet.<init>:(Ljava/util/Collection;)V
putfield jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.invokerTypes:Ljava/util/Set;
2: aload 0
new java.util.TreeSet
dup
aload 0
getfield jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.callSiteTypes:Ljava/util/Set;
invokespecial java.util.TreeSet.<init>:(Ljava/util/Collection;)V
putfield jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.callSiteTypes:Ljava/util/Set;
3: new java.util.TreeMap
dup
invokespecial java.util.TreeMap.<init>:()V
astore 2
start local 2 4: 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 4
goto 7
StackMap locals: jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin java.util.stream.Stream java.util.TreeMap top java.util.Iterator
StackMap stack:
5: aload 4
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.util.Map$Entry
astore 3
start local 3 6: aload 2
aload 3
invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
checkcast java.lang.String
new java.util.TreeSet
dup
aload 3
invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
checkcast java.util.Collection
invokespecial java.util.TreeSet.<init>:(Ljava/util/Collection;)V
invokevirtual java.util.TreeMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
end local 3 7: StackMap locals:
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 5
8: aload 0
aload 2
putfield jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.dmhMethods:Ljava/util/Map;
9: 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$1(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;
10: 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$2([Ljava/lang/String;)V (7)
([Ljava/lang/String;)V
invokeinterface java.util.stream.Stream.forEach:(Ljava/util/function/Consumer;)V
11: 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 lines Ljava/util/stream/Stream<Ljava/lang/String;>;
4 12 2 newDMHMethods Ljava/util/TreeMap<Ljava/lang/String;Ljava/util/Set<Ljava/lang/String;>;>;
6 7 3 entry Ljava/util/Map$Entry<Ljava/lang/String;Ljava/util/Set<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 validateMethodTypes(java.util.Set<java.lang.String>);
descriptor: (Ljava/util/Set;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=4, args_size=2
start local 0 start local 1 0: aload 1
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 3
goto 3
StackMap locals: jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin java.util.Set top java.util.Iterator
StackMap stack:
1: aload 3
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.lang.String
astore 2
start local 2 2: aload 0
aload 2
invokevirtual jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.validateMethodType:(Ljava/lang/String;)V
end local 2 3: StackMap locals:
StackMap stack:
aload 3
invokeinterface java.util.Iterator.hasNext:()Z
ifne 1
4: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Ljdk/tools/jlink/internal/plugins/GenerateJLIClassesPlugin;
0 5 1 dmhMethodTypes Ljava/util/Set<Ljava/lang/String;>;
2 3 2 type Ljava/lang/String;
Signature: (Ljava/util/Set<Ljava/lang/String;>;)V
MethodParameters:
Name Flags
dmhMethodTypes
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$3(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/Set;
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$4(Ljdk/tools/jlink/plugin/ResourcePoolBuilder;Ljava/lang/String;)V (7)
(Ljava/lang/String;)V
invokeinterface java.util.Set.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
aconst_null
putfield jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.speciesTypes:Ljava/util/Set;
7: aload 0
aconst_null
putfield jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.invokerTypes:Ljava/util/Set;
8: aload 0
aconst_null
putfield jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.dmhMethods:Ljava/util/Map;
9: 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 10 0 this Ljdk/tools/jlink/internal/plugins/GenerateJLIClassesPlugin;
0 10 1 in Ljdk/tools/jlink/plugin/ResourcePool;
0 10 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/misc/JavaLangInvokeAccess;
aload 1
invokeinterface jdk.internal.misc.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 23
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 22
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: ldc "DMH type parameter must start with L"
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: iinc 5 1
end local 11 end local 9 22: 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 23: 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
24: aload 0
getfield jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.invokerTypes:Ljava/util/Set;
invokeinterface java.util.Set.size:()I
anewarray java.lang.invoke.MethodType
astore 6
start local 6 25: iconst_0
istore 7
start local 7 26: aload 0
getfield jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.invokerTypes:Ljava/util/Set;
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 9
goto 39
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:
27: aload 9
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.lang.String
astore 8
start local 8 28: aload 8
invokestatic jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.asMethodType:(Ljava/lang/String;)Ljava/lang/invoke/MethodType;
astore 10
start local 10 29: aload 10
invokevirtual java.lang.invoke.MethodType.parameterCount:()I
iconst_1
isub
istore 11
start local 11 30: aload 10
invokevirtual java.lang.invoke.MethodType.parameterCount:()I
iconst_2
if_icmplt 33
31: aload 10
iconst_0
invokevirtual java.lang.invoke.MethodType.parameterType:(I)Ljava/lang/Class;
ldc Ljava/lang/Object;
if_acmpne 33
32: aload 10
iload 11
invokevirtual java.lang.invoke.MethodType.parameterType:(I)Ljava/lang/Class;
ldc Ljava/lang/Object;
if_acmpeq 36
33: 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
34: 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;
35: invokespecial jdk.tools.jlink.plugin.PluginException.<init>:(Ljava/lang/String;)V
athrow
36: 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
37: aload 6
iload 7
aload 10
iconst_0
iconst_1
invokevirtual java.lang.invoke.MethodType.dropParameterTypes:(II)Ljava/lang/invoke/MethodType;
aastore
38: iinc 7 1
end local 11 end local 10 end local 8 39: 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 27
40: aload 0
getfield jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.callSiteTypes:Ljava/util/Set;
invokeinterface java.util.Set.size:()I
anewarray java.lang.invoke.MethodType
astore 8
start local 8 41: iconst_0
istore 7
42: aload 0
getfield jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.callSiteTypes:Ljava/util/Set;
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 10
goto 53
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:
43: aload 10
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.lang.String
astore 9
start local 9 44: aload 9
invokestatic jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.asMethodType:(Ljava/lang/String;)Ljava/lang/invoke/MethodType;
astore 11
start local 11 45: aload 11
invokevirtual java.lang.invoke.MethodType.parameterCount:()I
iconst_1
isub
istore 12
start local 12 46: aload 11
invokevirtual java.lang.invoke.MethodType.parameterCount:()I
iconst_1
if_icmplt 48
47: aload 11
iload 12
invokevirtual java.lang.invoke.MethodType.parameterType:(I)Ljava/lang/Class;
ldc Ljava/lang/Object;
if_acmpeq 51
48: 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
49: 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;
50: invokespecial jdk.tools.jlink.plugin.PluginException.<init>:(Ljava/lang/String;)V
athrow
51: 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
52: iinc 7 1
end local 12 end local 11 end local 9 53: 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 43
54: getstatic jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.JLIA:Ljdk/internal/misc/JavaLangInvokeAccess;
55: ldc "java/lang/invoke/DirectMethodHandle$Holder"
aload 3
aload 4
56: invokeinterface jdk.internal.misc.JavaLangInvokeAccess.generateDirectMethodHandleHolderClassBytes:(Ljava/lang/String;[Ljava/lang/invoke/MethodType;[I)[B
astore 9
start local 9 57: 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;
58: astore 10
start local 10 59: aload 1
aload 10
invokeinterface jdk.tools.jlink.plugin.ResourcePoolBuilder.add:(Ljdk/tools/jlink/plugin/ResourcePoolEntry;)V
60: getstatic jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.JLIA:Ljdk/internal/misc/JavaLangInvokeAccess;
61: ldc "java/lang/invoke/DelegatingMethodHandle$Holder"
aload 3
62: invokeinterface jdk.internal.misc.JavaLangInvokeAccess.generateDelegatingMethodHandleHolderClassBytes:(Ljava/lang/String;[Ljava/lang/invoke/MethodType;)[B
astore 9
63: 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
64: aload 1
aload 10
invokeinterface jdk.tools.jlink.plugin.ResourcePoolBuilder.add:(Ljdk/tools/jlink/plugin/ResourcePoolEntry;)V
65: getstatic jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.JLIA:Ljdk/internal/misc/JavaLangInvokeAccess;
getstatic jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.INVOKERS_HOLDER_INTERNAL_NAME:Ljava/lang/String;
66: aload 6
aload 8
67: invokeinterface jdk.internal.misc.JavaLangInvokeAccess.generateInvokersHolderClassBytes:(Ljava/lang/String;[Ljava/lang/invoke/MethodType;[Ljava/lang/invoke/MethodType;)[B
astore 9
68: 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
69: aload 1
aload 10
invokeinterface jdk.tools.jlink.plugin.ResourcePoolBuilder.add:(Ljdk/tools/jlink/plugin/ResourcePoolEntry;)V
70: getstatic jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.JLIA:Ljdk/internal/misc/JavaLangInvokeAccess;
ldc "java/lang/invoke/LambdaForm$Holder"
invokeinterface jdk.internal.misc.JavaLangInvokeAccess.generateBasicFormsClassBytes:(Ljava/lang/String;)[B
astore 9
71: 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
72: aload 1
aload 10
invokeinterface jdk.tools.jlink.plugin.ResourcePoolBuilder.add:(Ljdk/tools/jlink/plugin/ResourcePoolEntry;)V
end local 10 end local 9 73: goto 76
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
74: astore 9
start local 9 75: new jdk.tools.jlink.plugin.PluginException
dup
aload 9
invokespecial jdk.tools.jlink.plugin.PluginException.<init>:(Ljava/lang/Throwable;)V
athrow
end local 9 76: 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 77 0 this Ljdk/tools/jlink/internal/plugins/GenerateJLIClassesPlugin;
0 77 1 out Ljdk/tools/jlink/plugin/ResourcePoolBuilder;
1 77 2 count I
3 4 3 entry Ljava/util/Set<Ljava/lang/String;>;
6 77 3 directMethodTypes [Ljava/lang/invoke/MethodType;
7 77 4 dmhTypes [I
8 77 5 index I
10 23 6 entry Ljava/util/Map$Entry<Ljava/lang/String;Ljava/util/Set<Ljava/lang/String;>;>;
11 23 8 dmhType Ljava/lang/String;
13 22 9 type Ljava/lang/String;
14 22 11 mt Ljava/lang/invoke/MethodType;
25 77 6 invokerMethodTypes [Ljava/lang/invoke/MethodType;
26 77 7 i I
28 39 8 invokerType Ljava/lang/String;
29 39 10 mt Ljava/lang/invoke/MethodType;
30 39 11 lastParam I
41 77 8 callSiteMethodTypes [Ljava/lang/invoke/MethodType;
44 53 9 callSiteType Ljava/lang/String;
45 53 11 mt Ljava/lang/invoke/MethodType;
46 53 12 lastParam I
57 73 9 bytes [B
59 73 10 ndata Ljdk/tools/jlink/plugin/ResourcePoolEntry;
75 76 9 ex Ljava/lang/Exception;
Exception table:
from to target type
54 73 74 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 static java.lang.String lambda$0(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/lang/String;
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokestatic jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.expandSignature:(Ljava/lang/String;)Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 type Ljava/lang/String;
private static java.lang.String[] lambda$1(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$2(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: 22
}
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 22
StackMap locals:
StackMap stack:
2: aload 2
ldc "[LF_RESOLVE]"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 8
goto 22
3: StackMap locals:
StackMap stack:
aload 1
arraylength
iconst_3
if_icmpne 22
aload 1
iconst_1
aaload
ldc "java.lang.invoke.BoundMethodHandle$Species_"
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 22
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 22
6: aload 0
getfield jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.speciesTypes:Ljava/util/Set;
aload 3
invokestatic jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.expandSignature:(Ljava/lang/String;)Ljava/lang/String;
invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
pop
end local 3 7: goto 22
8: StackMap locals:
StackMap stack:
aload 1
iconst_3
aaload
astore 3
start local 3 9: aload 0
aload 3
invokevirtual jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.validateMethodType:(Ljava/lang/String;)V
10: aload 1
iconst_1
aaload
ldc "java.lang.invoke.Invokers$Holder"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 17
11: ldc "linkToTargetMethod"
aload 1
iconst_2
aaload
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 13
12: ldc "linkToCallSite"
aload 1
iconst_2
aaload
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 15
13: StackMap locals: java.lang.String
StackMap stack:
aload 0
getfield jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.callSiteTypes:Ljava/util/Set;
aload 3
invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
pop
14: goto 22
15: StackMap locals:
StackMap stack:
aload 0
getfield jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.invokerTypes:Ljava/util/Set;
aload 3
invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
pop
16: goto 22
StackMap locals:
StackMap stack:
17: aload 1
iconst_1
aaload
ldc "DirectMethodHandle"
invokevirtual java.lang.String.contains:(Ljava/lang/CharSequence;)Z
ifeq 22
18: aload 1
iconst_2
aaload
astore 4
start local 4 19: 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 22
20: aload 0
aload 4
aload 3
invokevirtual jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.addDMHMethodType:(Ljava/lang/String;Ljava/lang/String;)V
end local 4 21: goto 22
end local 3 22: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 23 0 this Ljdk/tools/jlink/internal/plugins/GenerateJLIClassesPlugin;
0 23 1 parts [Ljava/lang/String;
5 7 3 species Ljava/lang/String;
9 22 3 methodType Ljava/lang/String;
19 21 4 dmh Ljava/lang/String;
private static jdk.tools.jlink.plugin.ResourcePoolEntry lambda$3(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$4(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;
}
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