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 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=5, args_size=2
start local 0 start local 1 0: aload 0
getfield jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.mainArgument:Ljava/lang/String;
ifnull 1
aload 0
getfield jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.mainArgument:Ljava/lang/String;
ldc "@"
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifne 19
1: StackMap locals:
StackMap stack:
aconst_null
astore 2
aconst_null
astore 3
2: 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;
3: astore 4
start local 4 4: aload 4
ifnull 11
5: aload 0
6: new java.io.BufferedReader
dup
7: new java.io.InputStreamReader
dup
aload 4
invokespecial java.io.InputStreamReader.<init>:(Ljava/io/InputStream;)V
8: invokespecial java.io.BufferedReader.<init>:(Ljava/io/Reader;)V
9: invokevirtual java.io.BufferedReader.lines:()Ljava/util/stream/Stream;
10: invokevirtual jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin.readTraceConfig:(Ljava/util/stream/Stream;)V
11: StackMap locals: java.lang.Throwable java.lang.Throwable java.io.InputStream
StackMap stack:
aload 4
ifnull 22
aload 4
invokevirtual java.io.InputStream.close:()V
goto 22
StackMap locals:
StackMap stack: java.lang.Throwable
12: astore 2
aload 4
ifnull 13
aload 4
invokevirtual java.io.InputStream.close:()V
end local 4 StackMap locals:
StackMap stack:
13: aload 2
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
14: astore 3
aload 2
ifnonnull 15
aload 3
astore 2
goto 16
StackMap locals:
StackMap stack:
15: aload 2
aload 3
if_acmpeq 16
aload 2
aload 3
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
16: aload 2
athrow
StackMap locals: jdk.tools.jlink.internal.plugins.GenerateJLIClassesPlugin jdk.tools.jlink.plugin.ResourcePool
StackMap stack: java.lang.Exception
17: astore 2
start local 2 18: 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 19: 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 20: aload 2
invokevirtual java.io.File.exists:()Z
ifeq 22
21: 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 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 in Ljdk/tools/jlink/plugin/ResourcePool;
4 13 4 traceFile Ljava/io/InputStream;
18 19 2 e Ljava/lang/Exception;
20 22 2 file Ljava/io/File;
Exception table:
from to target type
4 11 12 any
2 14 14 any
1 17 17 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$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;
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$1([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$2(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$3(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 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=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$1(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$2(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$3(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