public class com.oracle.svm.hosted.substitute.DeclarativeSubstitutionProcessor extends com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: com.oracle.svm.hosted.substitute.DeclarativeSubstitutionProcessor
super_class: com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor
{
private final java.util.Map<java.lang.Class<?>, com.oracle.svm.hosted.substitute.ClassDescriptor> classDescriptors;
descriptor: Ljava/util/Map;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/Map<Ljava/lang/Class<*>;Lcom/oracle/svm/hosted/substitute/ClassDescriptor;>;
private final java.util.Map<java.lang.reflect.Executable, com.oracle.svm.hosted.substitute.MethodDescriptor> methodDescriptors;
descriptor: Ljava/util/Map;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/Map<Ljava/lang/reflect/Executable;Lcom/oracle/svm/hosted/substitute/MethodDescriptor;>;
private final java.util.Map<java.lang.reflect.Field, com.oracle.svm.hosted.substitute.FieldDescriptor> fieldDescriptors;
descriptor: Ljava/util/Map;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/Map<Ljava/lang/reflect/Field;Lcom/oracle/svm/hosted/substitute/FieldDescriptor;>;
public void <init>(com.oracle.svm.hosted.ImageClassLoader, jdk.vm.ci.meta.MetaAccessProvider, com.oracle.svm.hosted.classinitialization.ClassInitializationSupport);
descriptor: (Lcom/oracle/svm/hosted/ImageClassLoader;Ljdk/vm/ci/meta/MetaAccessProvider;Lcom/oracle/svm/hosted/classinitialization/ClassInitializationSupport;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=7, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
aload 1
aload 2
aload 3
invokespecial com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.<init>:(Lcom/oracle/svm/hosted/ImageClassLoader;Ljdk/vm/ci/meta/MetaAccessProvider;Lcom/oracle/svm/hosted/classinitialization/ClassInitializationSupport;)V
1: aload 0
new java.util.HashMap
dup
invokespecial java.util.HashMap.<init>:()V
putfield com.oracle.svm.hosted.substitute.DeclarativeSubstitutionProcessor.classDescriptors:Ljava/util/Map;
2: aload 0
new java.util.HashMap
dup
invokespecial java.util.HashMap.<init>:()V
putfield com.oracle.svm.hosted.substitute.DeclarativeSubstitutionProcessor.methodDescriptors:Ljava/util/Map;
3: aload 0
new java.util.HashMap
dup
invokespecial java.util.HashMap.<init>:()V
putfield com.oracle.svm.hosted.substitute.DeclarativeSubstitutionProcessor.fieldDescriptors:Ljava/util/Map;
4: ldc ","
getstatic com.oracle.svm.core.configure.ConfigurationFiles$Options.SubstitutionFiles:Lcom/oracle/svm/core/option/HostedOptionKey;
invokevirtual com.oracle.svm.core.option.HostedOptionKey.getValue:()Ljava/lang/Object;
checkcast java.lang.String[]
invokestatic com.oracle.svm.core.option.OptionUtils.flatten:(Ljava/lang/String;[Ljava/lang/String;)Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 5
goto 12
StackMap locals: com.oracle.svm.hosted.substitute.DeclarativeSubstitutionProcessor com.oracle.svm.hosted.ImageClassLoader jdk.vm.ci.meta.MetaAccessProvider com.oracle.svm.hosted.classinitialization.ClassInitializationSupport top java.util.Iterator
StackMap stack:
5: aload 5
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.lang.String
astore 4
start local 4 6: aload 0
new java.io.FileReader
dup
aload 4
invokespecial java.io.FileReader.<init>:(Ljava/lang/String;)V
invokevirtual com.oracle.svm.hosted.substitute.DeclarativeSubstitutionProcessor.loadFile:(Ljava/io/Reader;)V
7: goto 12
StackMap locals: com.oracle.svm.hosted.substitute.DeclarativeSubstitutionProcessor com.oracle.svm.hosted.ImageClassLoader jdk.vm.ci.meta.MetaAccessProvider com.oracle.svm.hosted.classinitialization.ClassInitializationSupport java.lang.String java.util.Iterator
StackMap stack: java.io.FileNotFoundException
8: pop
9: ldc "Substitution file %s not found."
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 4
aastore
invokestatic com.oracle.svm.core.util.UserError.abort:(Ljava/lang/String;[Ljava/lang/Object;)Lcom/oracle/svm/core/util/UserError$UserException;
athrow
10: StackMap locals:
StackMap stack: java.lang.Exception
astore 6
start local 6 11: ldc "Could not parse substitution file %s: %s"
iconst_2
anewarray java.lang.Object
dup
iconst_0
aload 4
aastore
dup
iconst_1
aload 6
invokevirtual java.lang.Exception.getMessage:()Ljava/lang/String;
aastore
invokestatic com.oracle.svm.core.util.UserError.abort:(Ljava/lang/String;[Ljava/lang/Object;)Lcom/oracle/svm/core/util/UserError$UserException;
athrow
end local 6 end local 4 12: StackMap locals: com.oracle.svm.hosted.substitute.DeclarativeSubstitutionProcessor com.oracle.svm.hosted.ImageClassLoader jdk.vm.ci.meta.MetaAccessProvider com.oracle.svm.hosted.classinitialization.ClassInitializationSupport top java.util.Iterator
StackMap stack:
aload 5
invokeinterface java.util.Iterator.hasNext:()Z
ifne 5
13: ldc ","
getstatic com.oracle.svm.hosted.substitute.DeclarativeSubstitutionProcessor$Options.SubstitutionResources:Lcom/oracle/svm/core/option/HostedOptionKey;
invokevirtual com.oracle.svm.core.option.HostedOptionKey.getValue:()Ljava/lang/Object;
checkcast java.lang.String[]
invokestatic com.oracle.svm.core.option.OptionUtils.flatten:(Ljava/lang/String;[Ljava/lang/String;)Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 5
goto 22
StackMap locals:
StackMap stack:
14: aload 5
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.lang.String
astore 4
start local 4 15: aload 1
aload 4
invokevirtual com.oracle.svm.hosted.ImageClassLoader.findResourceAsStreamByName:(Ljava/lang/String;)Ljava/io/InputStream;
astore 6
start local 6 16: aload 6
ifnonnull 18
17: ldc "Substitution resource not found: %s"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 4
aastore
invokestatic com.oracle.svm.core.util.UserError.abort:(Ljava/lang/String;[Ljava/lang/Object;)Lcom/oracle/svm/core/util/UserError$UserException;
athrow
18: StackMap locals: com.oracle.svm.hosted.substitute.DeclarativeSubstitutionProcessor com.oracle.svm.hosted.ImageClassLoader jdk.vm.ci.meta.MetaAccessProvider com.oracle.svm.hosted.classinitialization.ClassInitializationSupport java.lang.String java.util.Iterator java.io.InputStream
StackMap stack:
aload 0
new java.io.InputStreamReader
dup
aload 6
invokespecial java.io.InputStreamReader.<init>:(Ljava/io/InputStream;)V
invokevirtual com.oracle.svm.hosted.substitute.DeclarativeSubstitutionProcessor.loadFile:(Ljava/io/Reader;)V
end local 6 19: goto 22
StackMap locals: com.oracle.svm.hosted.substitute.DeclarativeSubstitutionProcessor com.oracle.svm.hosted.ImageClassLoader jdk.vm.ci.meta.MetaAccessProvider com.oracle.svm.hosted.classinitialization.ClassInitializationSupport java.lang.String java.util.Iterator
StackMap stack: java.lang.Exception
20: astore 6
start local 6 21: ldc "Could not parse substitution resource %s: %s"
iconst_2
anewarray java.lang.Object
dup
iconst_0
aload 4
aastore
dup
iconst_1
aload 6
invokevirtual java.lang.Exception.getMessage:()Ljava/lang/String;
aastore
invokestatic com.oracle.svm.core.util.UserError.abort:(Ljava/lang/String;[Ljava/lang/Object;)Lcom/oracle/svm/core/util/UserError$UserException;
athrow
end local 6 end local 4 22: StackMap locals: com.oracle.svm.hosted.substitute.DeclarativeSubstitutionProcessor com.oracle.svm.hosted.ImageClassLoader jdk.vm.ci.meta.MetaAccessProvider com.oracle.svm.hosted.classinitialization.ClassInitializationSupport top java.util.Iterator
StackMap stack:
aload 5
invokeinterface java.util.Iterator.hasNext:()Z
ifne 14
23: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 24 0 this Lcom/oracle/svm/hosted/substitute/DeclarativeSubstitutionProcessor;
0 24 1 imageClassLoader Lcom/oracle/svm/hosted/ImageClassLoader;
0 24 2 metaAccess Ljdk/vm/ci/meta/MetaAccessProvider;
0 24 3 classInitializationSupport Lcom/oracle/svm/hosted/classinitialization/ClassInitializationSupport;
6 12 4 substitutionFileName Ljava/lang/String;
11 12 6 ex Ljava/lang/Exception;
15 22 4 substitutionResourceName Ljava/lang/String;
16 19 6 substitutionStream Ljava/io/InputStream;
21 22 6 ex Ljava/lang/Exception;
Exception table:
from to target type
6 7 8 Class java.io.FileNotFoundException
6 7 10 Class java.io.IOException
6 7 10 Class com.oracle.svm.core.util.json.JSONParserException
15 19 20 Class java.io.IOException
15 19 20 Class com.oracle.svm.core.util.json.JSONParserException
MethodParameters:
Name Flags
imageClassLoader
metaAccess
classInitializationSupport
private void loadFile(java.io.Reader);
descriptor: (Ljava/io/Reader;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=13, args_size=2
start local 0 start local 1 0: new java.util.HashSet
dup
aload 0
getfield com.oracle.svm.hosted.substitute.DeclarativeSubstitutionProcessor.imageClassLoader:Lcom/oracle/svm/hosted/ImageClassLoader;
ldc Lcom/oracle/svm/core/annotate/TargetClass;
iconst_0
invokevirtual com.oracle.svm.hosted.ImageClassLoader.findAnnotatedClasses:(Ljava/lang/Class;Z)Ljava/util/List;
invokespecial java.util.HashSet.<init>:(Ljava/util/Collection;)V
astore 2
start local 2 1: new com.oracle.svm.core.util.json.JSONParser
dup
aload 1
invokespecial com.oracle.svm.core.util.json.JSONParser.<init>:(Ljava/io/Reader;)V
astore 3
start local 3 2: aload 3
invokevirtual com.oracle.svm.core.util.json.JSONParser.parse:()Ljava/lang/Object;
checkcast java.util.List
astore 4
start local 4 3: aload 4
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 6
goto 31
StackMap locals: com.oracle.svm.hosted.substitute.DeclarativeSubstitutionProcessor java.io.Reader java.util.Set com.oracle.svm.core.util.json.JSONParser java.util.List top java.util.Iterator
StackMap stack:
4: aload 6
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
astore 5
start local 5 5: aload 5
ifnonnull 7
6: goto 31
7: StackMap locals: com.oracle.svm.hosted.substitute.DeclarativeSubstitutionProcessor java.io.Reader java.util.Set com.oracle.svm.core.util.json.JSONParser java.util.List java.lang.Object java.util.Iterator
StackMap stack:
new com.oracle.svm.hosted.substitute.ClassDescriptor
dup
aload 5
invokespecial com.oracle.svm.hosted.substitute.ClassDescriptor.<init>:(Ljava/lang/Object;)V
astore 7
start local 7 8: aload 0
getfield com.oracle.svm.hosted.substitute.DeclarativeSubstitutionProcessor.imageClassLoader:Lcom/oracle/svm/hosted/ImageClassLoader;
aload 7
invokevirtual com.oracle.svm.hosted.substitute.ClassDescriptor.annotatedClass:()Ljava/lang/String;
invokevirtual com.oracle.svm.hosted.ImageClassLoader.findClassOrFail:(Ljava/lang/String;)Ljava/lang/Class;
astore 8
start local 8 9: aload 2
aload 8
invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
ifeq 11
10: ldc "Target class already registered using explicit @TargetClass annotation: %s"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 8
aastore
invokestatic com.oracle.svm.core.util.UserError.abort:(Ljava/lang/String;[Ljava/lang/Object;)Lcom/oracle/svm/core/util/UserError$UserException;
athrow
11: StackMap locals: com.oracle.svm.hosted.substitute.ClassDescriptor java.lang.Class
StackMap stack:
aload 0
getfield com.oracle.svm.hosted.substitute.DeclarativeSubstitutionProcessor.classDescriptors:Ljava/util/Map;
aload 8
invokeinterface java.util.Map.containsKey:(Ljava/lang/Object;)Z
ifeq 13
12: ldc "Target class already registered using substitution file: %s"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 8
aastore
invokestatic com.oracle.svm.core.util.UserError.abort:(Ljava/lang/String;[Ljava/lang/Object;)Lcom/oracle/svm/core/util/UserError$UserException;
athrow
13: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.svm.hosted.substitute.DeclarativeSubstitutionProcessor.classDescriptors:Ljava/util/Map;
aload 8
aload 7
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
14: aload 7
invokevirtual com.oracle.svm.hosted.substitute.ClassDescriptor.methods:()Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 10
goto 24
StackMap locals: com.oracle.svm.hosted.substitute.DeclarativeSubstitutionProcessor java.io.Reader java.util.Set com.oracle.svm.core.util.json.JSONParser java.util.List java.lang.Object java.util.Iterator com.oracle.svm.hosted.substitute.ClassDescriptor java.lang.Class top java.util.Iterator
StackMap stack:
15: aload 10
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
astore 9
start local 9 16: aload 9
ifnonnull 18
17: goto 24
18: StackMap locals: com.oracle.svm.hosted.substitute.DeclarativeSubstitutionProcessor java.io.Reader java.util.Set com.oracle.svm.core.util.json.JSONParser java.util.List java.lang.Object java.util.Iterator com.oracle.svm.hosted.substitute.ClassDescriptor java.lang.Class java.lang.Object java.util.Iterator
StackMap stack:
new com.oracle.svm.hosted.substitute.MethodDescriptor
dup
aload 9
invokespecial com.oracle.svm.hosted.substitute.MethodDescriptor.<init>:(Ljava/lang/Object;)V
astore 11
start local 11 19: aload 11
invokevirtual com.oracle.svm.hosted.substitute.MethodDescriptor.parameterTypes:()[Ljava/lang/String;
ifnull 22
20: aload 0
aload 8
aload 11
invokevirtual com.oracle.svm.hosted.substitute.MethodDescriptor.annotatedName:()Ljava/lang/String;
aload 11
invokevirtual com.oracle.svm.hosted.substitute.MethodDescriptor.parameterTypes:()[Ljava/lang/String;
invokevirtual com.oracle.svm.hosted.substitute.DeclarativeSubstitutionProcessor.findMethod:(Ljava/lang/Class;Ljava/lang/String;[Ljava/lang/String;)Ljava/lang/reflect/Executable;
astore 12
start local 12 21: goto 23
end local 12 22: StackMap locals: com.oracle.svm.hosted.substitute.MethodDescriptor
StackMap stack:
aload 8
aload 11
invokevirtual com.oracle.svm.hosted.substitute.MethodDescriptor.annotatedName:()Ljava/lang/String;
iconst_1
invokestatic com.oracle.svm.hosted.substitute.DeclarativeSubstitutionProcessor.findMethod:(Ljava/lang/Class;Ljava/lang/String;Z)Ljava/lang/reflect/Executable;
astore 12
start local 12 23: StackMap locals: java.lang.reflect.Executable
StackMap stack:
aload 0
getfield com.oracle.svm.hosted.substitute.DeclarativeSubstitutionProcessor.methodDescriptors:Ljava/util/Map;
aload 12
aload 11
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
end local 12 end local 11 end local 9 24: StackMap locals: com.oracle.svm.hosted.substitute.DeclarativeSubstitutionProcessor java.io.Reader java.util.Set com.oracle.svm.core.util.json.JSONParser java.util.List java.lang.Object java.util.Iterator com.oracle.svm.hosted.substitute.ClassDescriptor java.lang.Class top java.util.Iterator
StackMap stack:
aload 10
invokeinterface java.util.Iterator.hasNext:()Z
ifne 15
25: aload 7
invokevirtual com.oracle.svm.hosted.substitute.ClassDescriptor.fields:()Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 10
goto 30
StackMap locals:
StackMap stack:
26: aload 10
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
astore 9
start local 9 27: new com.oracle.svm.hosted.substitute.FieldDescriptor
dup
aload 9
invokespecial com.oracle.svm.hosted.substitute.FieldDescriptor.<init>:(Ljava/lang/Object;)V
astore 11
start local 11 28: aload 8
aload 11
invokevirtual com.oracle.svm.hosted.substitute.FieldDescriptor.annotatedName:()Ljava/lang/String;
invokestatic com.oracle.svm.hosted.substitute.DeclarativeSubstitutionProcessor.findField:(Ljava/lang/Class;Ljava/lang/String;)Ljava/lang/reflect/Field;
astore 12
start local 12 29: aload 0
getfield com.oracle.svm.hosted.substitute.DeclarativeSubstitutionProcessor.fieldDescriptors:Ljava/util/Map;
aload 12
aload 11
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
end local 12 end local 11 end local 9 30: StackMap locals:
StackMap stack:
aload 10
invokeinterface java.util.Iterator.hasNext:()Z
ifne 26
end local 8 end local 7 end local 5 31: StackMap locals: com.oracle.svm.hosted.substitute.DeclarativeSubstitutionProcessor java.io.Reader java.util.Set com.oracle.svm.core.util.json.JSONParser java.util.List top java.util.Iterator
StackMap stack:
aload 6
invokeinterface java.util.Iterator.hasNext:()Z
ifne 4
32: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 33 0 this Lcom/oracle/svm/hosted/substitute/DeclarativeSubstitutionProcessor;
0 33 1 reader Ljava/io/Reader;
1 33 2 annotatedClasses Ljava/util/Set<Ljava/lang/Class<*>;>;
2 33 3 parser Lcom/oracle/svm/core/util/json/JSONParser;
3 33 4 allDescriptors Ljava/util/List<Ljava/lang/Object;>;
5 31 5 classDescriptorData Ljava/lang/Object;
8 31 7 classDescriptor Lcom/oracle/svm/hosted/substitute/ClassDescriptor;
9 31 8 annotatedClass Ljava/lang/Class<*>;
16 24 9 methodDescriptorData Ljava/lang/Object;
19 24 11 methodDescriptor Lcom/oracle/svm/hosted/substitute/MethodDescriptor;
21 22 12 annotatedMethod Ljava/lang/reflect/Executable;
23 24 12 annotatedMethod Ljava/lang/reflect/Executable;
27 30 9 fieldDescriptorData Ljava/lang/Object;
28 30 11 fieldDescriptor Lcom/oracle/svm/hosted/substitute/FieldDescriptor;
29 30 12 annotatedField Ljava/lang/reflect/Field;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
reader
private static java.lang.reflect.Executable findMethod(java.lang.Class<?>, java.lang.String, boolean);
descriptor: (Ljava/lang/Class;Ljava/lang/String;Z)Ljava/lang/reflect/Executable;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=6, locals=8, args_size=3
start local 0 start local 1 start local 2 0: aconst_null
astore 3
start local 3 1: aload 1
ldc "<init>"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 16
2: aload 0
invokevirtual java.lang.Class.getDeclaredConstructors:()[Ljava/lang/reflect/Constructor;
dup
astore 7
arraylength
istore 6
iconst_0
istore 5
goto 11
StackMap locals: java.lang.Class java.lang.String int java.lang.reflect.Executable top int int java.lang.reflect.Constructor[]
StackMap stack:
3: aload 7
iload 5
aaload
astore 4
start local 4 4: aload 3
ifnull 9
5: iload 2
ifeq 6
iconst_0
goto 7
StackMap locals: java.lang.Class java.lang.String int java.lang.reflect.Executable java.lang.reflect.Constructor int int java.lang.reflect.Constructor[]
StackMap stack:
6: iconst_1
StackMap locals:
StackMap stack: int
7: ldc "two constructors found: %s, %s "
iconst_2
anewarray java.lang.Object
dup
iconst_0
aload 3
aastore
dup
iconst_1
aload 4
aastore
invokestatic com.oracle.svm.core.util.UserError.guarantee:(ZLjava/lang/String;[Ljava/lang/Object;)V
8: aconst_null
areturn
9: StackMap locals:
StackMap stack:
aload 4
astore 3
end local 4 10: iinc 5 1
StackMap locals: java.lang.Class java.lang.String int java.lang.reflect.Executable top int int java.lang.reflect.Constructor[]
StackMap stack:
11: iload 5
iload 6
if_icmplt 3
12: iload 2
ifeq 13
aload 3
ifnonnull 13
iconst_0
goto 14
StackMap locals: java.lang.Class java.lang.String int java.lang.reflect.Executable
StackMap stack:
13: iconst_1
StackMap locals:
StackMap stack: int
14: ldc "no constructor found: %s"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 0
aastore
invokestatic com.oracle.svm.core.util.UserError.guarantee:(ZLjava/lang/String;[Ljava/lang/Object;)V
15: goto 30
16: StackMap locals:
StackMap stack:
aload 0
invokevirtual java.lang.Class.getDeclaredMethods:()[Ljava/lang/reflect/Method;
dup
astore 7
arraylength
istore 6
iconst_0
istore 5
goto 26
StackMap locals: java.lang.Class java.lang.String int java.lang.reflect.Executable top int int java.lang.reflect.Method[]
StackMap stack:
17: aload 7
iload 5
aaload
astore 4
start local 4 18: aload 4
invokevirtual java.lang.reflect.Method.getName:()Ljava/lang/String;
aload 1
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 25
19: aload 3
ifnull 24
20: iload 2
ifeq 21
iconst_0
goto 22
StackMap locals: java.lang.Class java.lang.String int java.lang.reflect.Executable java.lang.reflect.Method int int java.lang.reflect.Method[]
StackMap stack:
21: iconst_1
StackMap locals:
StackMap stack: int
22: ldc "two methods with same name found: %s, %s "
iconst_2
anewarray java.lang.Object
dup
iconst_0
aload 3
aastore
dup
iconst_1
aload 4
aastore
invokestatic com.oracle.svm.core.util.UserError.guarantee:(ZLjava/lang/String;[Ljava/lang/Object;)V
23: aconst_null
areturn
24: StackMap locals:
StackMap stack:
aload 4
astore 3
end local 4 25: StackMap locals: java.lang.Class java.lang.String int java.lang.reflect.Executable top int int java.lang.reflect.Method[]
StackMap stack:
iinc 5 1
StackMap locals:
StackMap stack:
26: iload 5
iload 6
if_icmplt 17
27: iload 2
ifeq 28
aload 3
ifnonnull 28
iconst_0
goto 29
StackMap locals: java.lang.Class java.lang.String int java.lang.reflect.Executable
StackMap stack:
28: iconst_1
StackMap locals:
StackMap stack: int
29: ldc "method not found: %s, method name %s"
iconst_2
anewarray java.lang.Object
dup
iconst_0
aload 0
aastore
dup
iconst_1
aload 1
aastore
invokestatic com.oracle.svm.core.util.UserError.guarantee:(ZLjava/lang/String;[Ljava/lang/Object;)V
30: StackMap locals:
StackMap stack:
aload 3
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 31 0 declaringClass Ljava/lang/Class<*>;
0 31 1 methodName Ljava/lang/String;
0 31 2 fatalIfNotUnique Z
1 31 3 result Ljava/lang/reflect/Executable;
4 10 4 c Ljava/lang/reflect/Constructor<*>;
18 25 4 m Ljava/lang/reflect/Method;
Signature: (Ljava/lang/Class<*>;Ljava/lang/String;Z)Ljava/lang/reflect/Executable;
MethodParameters:
Name Flags
declaringClass
methodName
fatalIfNotUnique
private java.lang.reflect.Executable findMethod(java.lang.Class<?>, java.lang.String, java.lang.String[]);
descriptor: (Ljava/lang/Class;Ljava/lang/String;[Ljava/lang/String;)Ljava/lang/reflect/Executable;
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=6, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 3
arraylength
anewarray java.lang.Class
astore 4
start local 4 1: iconst_0
istore 5
start local 5 2: goto 5
3: StackMap locals: java.lang.Class[] int
StackMap stack:
aload 4
iload 5
aload 0
getfield com.oracle.svm.hosted.substitute.DeclarativeSubstitutionProcessor.imageClassLoader:Lcom/oracle/svm/hosted/ImageClassLoader;
aload 3
iload 5
aaload
invokevirtual com.oracle.svm.hosted.ImageClassLoader.findClassOrFail:(Ljava/lang/String;)Ljava/lang/Class;
aastore
4: iinc 5 1
StackMap locals:
StackMap stack:
5: iload 5
aload 4
arraylength
if_icmplt 3
end local 5 6: aload 2
ldc "<init>"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 9
7: aload 1
aload 4
invokevirtual java.lang.Class.getDeclaredConstructor:([Ljava/lang/Class;)Ljava/lang/reflect/Constructor;
8: areturn
9: StackMap locals:
StackMap stack:
aload 1
aload 2
aload 4
invokevirtual java.lang.Class.getDeclaredMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
10: areturn
11: StackMap locals:
StackMap stack: java.lang.NoSuchMethodException
pop
12: new java.lang.StringBuilder
dup
ldc "method not found: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc ", method name "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 2
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc ", parameter types "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 3
invokestatic java.util.Arrays.toString:([Ljava/lang/Object;)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokestatic com.oracle.svm.core.util.VMError.shouldNotReachHere:(Ljava/lang/String;)Ljava/lang/RuntimeException;
athrow
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Lcom/oracle/svm/hosted/substitute/DeclarativeSubstitutionProcessor;
0 13 1 declaringClass Ljava/lang/Class<*>;
0 13 2 methodName Ljava/lang/String;
0 13 3 parameterTypeNames [Ljava/lang/String;
1 13 4 parameterTypes [Ljava/lang/Class;
2 6 5 i I
Exception table:
from to target type
6 8 11 Class java.lang.NoSuchMethodException
9 10 11 Class java.lang.NoSuchMethodException
Signature: (Ljava/lang/Class<*>;Ljava/lang/String;[Ljava/lang/String;)Ljava/lang/reflect/Executable;
MethodParameters:
Name Flags
declaringClass
methodName
parameterTypeNames
private static java.lang.reflect.Field findField(java.lang.Class<?>, java.lang.String);
descriptor: (Ljava/lang/Class;Ljava/lang/String;)Ljava/lang/reflect/Field;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokevirtual java.lang.Class.getDeclaredField:(Ljava/lang/String;)Ljava/lang/reflect/Field;
1: areturn
2: StackMap locals:
StackMap stack: java.lang.NoSuchFieldException
astore 2
start local 2 3: aload 2
invokestatic com.oracle.svm.core.util.VMError.shouldNotReachHere:(Ljava/lang/Throwable;)Ljava/lang/RuntimeException;
athrow
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 declaringClass Ljava/lang/Class<*>;
0 4 1 fieldName Ljava/lang/String;
3 4 2 e Ljava/lang/NoSuchFieldException;
Exception table:
from to target type
0 1 2 Class java.lang.NoSuchFieldException
Signature: (Ljava/lang/Class<*>;Ljava/lang/String;)Ljava/lang/reflect/Field;
MethodParameters:
Name Flags
declaringClass
fieldName
protected java.util.List<java.lang.Class<?>> findTargetClasses();
descriptor: ()Ljava/util/List;
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=2, args_size=1
start local 0 0: aload 0
invokespecial com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.findTargetClasses:()Ljava/util/List;
astore 1
start local 1 1: aload 1
aload 0
getfield com.oracle.svm.hosted.substitute.DeclarativeSubstitutionProcessor.classDescriptors:Ljava/util/Map;
invokeinterface java.util.Map.keySet:()Ljava/util/Set;
invokeinterface java.util.List.addAll:(Ljava/util/Collection;)Z
pop
2: aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/oracle/svm/hosted/substitute/DeclarativeSubstitutionProcessor;
1 3 1 result Ljava/util/List<Ljava/lang/Class<*>;>;
Signature: ()Ljava/util/List<Ljava/lang/Class<*>;>;
protected <T extends java.lang.annotation.Annotation> T lookupAnnotation(java.lang.reflect.AnnotatedElement, java.lang.Class<T>);
descriptor: (Ljava/lang/reflect/AnnotatedElement;Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
flags: (0x0004) ACC_PROTECTED
Code:
stack=4, locals=5, args_size=3
start local 0 start local 1 start local 2 0: aload 1
instanceof java.lang.Class
ifeq 21
aload 0
getfield com.oracle.svm.hosted.substitute.DeclarativeSubstitutionProcessor.classDescriptors:Ljava/util/Map;
aload 1
invokeinterface java.util.Map.containsKey:(Ljava/lang/Object;)Z
ifeq 21
1: aload 0
getfield com.oracle.svm.hosted.substitute.DeclarativeSubstitutionProcessor.classDescriptors:Ljava/util/Map;
aload 1
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast com.oracle.svm.hosted.substitute.ClassDescriptor
astore 4
start local 4 2: aload 2
ldc Lorg/graalvm/nativeimage/Platforms;
if_acmpne 7
3: aload 4
invokevirtual com.oracle.svm.hosted.substitute.ClassDescriptor.platforms:()Ljava/util/List;
ifnull 4
new com.oracle.svm.hosted.substitute.PlatformsDescriptor$PlatformsImpl
dup
aload 4
dup
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
pop
aload 0
getfield com.oracle.svm.hosted.substitute.DeclarativeSubstitutionProcessor.imageClassLoader:Lcom/oracle/svm/hosted/ImageClassLoader;
invokespecial com.oracle.svm.hosted.substitute.PlatformsDescriptor$PlatformsImpl.<init>:(Lcom/oracle/svm/hosted/substitute/PlatformsDescriptor;Lcom/oracle/svm/hosted/ImageClassLoader;)V
goto 5
StackMap locals: com.oracle.svm.hosted.substitute.DeclarativeSubstitutionProcessor java.lang.reflect.AnnotatedElement java.lang.Class top com.oracle.svm.hosted.substitute.ClassDescriptor
StackMap stack:
4: aconst_null
StackMap locals:
StackMap stack: com.oracle.svm.hosted.substitute.PlatformsDescriptor$PlatformsImpl
5: astore 3
start local 3 6: goto 94
end local 3 StackMap locals:
StackMap stack:
7: aload 2
ldc Lcom/oracle/svm/core/annotate/TargetClass;
if_acmpne 10
8: new com.oracle.svm.hosted.substitute.ClassDescriptor$TargetClassImpl
dup
aload 4
dup
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
pop
invokespecial com.oracle.svm.hosted.substitute.ClassDescriptor$TargetClassImpl.<init>:(Lcom/oracle/svm/hosted/substitute/ClassDescriptor;)V
astore 3
start local 3 9: goto 94
end local 3 StackMap locals:
StackMap stack:
10: aload 2
ldc Lcom/oracle/svm/core/annotate/Delete;
if_acmpne 15
11: aload 4
invokevirtual com.oracle.svm.hosted.substitute.ClassDescriptor.delete:()Z
ifeq 12
new com.oracle.svm.hosted.substitute.DeleteImpl
dup
invokespecial com.oracle.svm.hosted.substitute.DeleteImpl.<init>:()V
goto 13
StackMap locals:
StackMap stack:
12: aconst_null
StackMap locals:
StackMap stack: com.oracle.svm.hosted.substitute.DeleteImpl
13: astore 3
start local 3 14: goto 94
end local 3 StackMap locals:
StackMap stack:
15: aload 2
ldc Lcom/oracle/svm/core/annotate/Substitute;
if_acmpne 20
16: aload 4
invokevirtual com.oracle.svm.hosted.substitute.ClassDescriptor.substitute:()Z
ifeq 17
new com.oracle.svm.hosted.substitute.SubstituteImpl
dup
invokespecial com.oracle.svm.hosted.substitute.SubstituteImpl.<init>:()V
goto 18
StackMap locals:
StackMap stack:
17: aconst_null
StackMap locals:
StackMap stack: com.oracle.svm.hosted.substitute.SubstituteImpl
18: astore 3
start local 3 19: goto 94
end local 3 20: StackMap locals:
StackMap stack:
new java.lang.StringBuilder
dup
ldc "Unexpected annotation type: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 2
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokestatic com.oracle.svm.core.util.VMError.shouldNotReachHere:(Ljava/lang/String;)Ljava/lang/RuntimeException;
athrow
end local 4 21: StackMap locals: com.oracle.svm.hosted.substitute.DeclarativeSubstitutionProcessor java.lang.reflect.AnnotatedElement java.lang.Class
StackMap stack:
aload 1
instanceof java.lang.reflect.Executable
ifeq 57
aload 0
getfield com.oracle.svm.hosted.substitute.DeclarativeSubstitutionProcessor.methodDescriptors:Ljava/util/Map;
aload 1
invokeinterface java.util.Map.containsKey:(Ljava/lang/Object;)Z
ifeq 57
22: aload 0
getfield com.oracle.svm.hosted.substitute.DeclarativeSubstitutionProcessor.methodDescriptors:Ljava/util/Map;
aload 1
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast com.oracle.svm.hosted.substitute.MethodDescriptor
astore 4
start local 4 23: aload 2
ldc Lorg/graalvm/nativeimage/Platforms;
if_acmpne 28
24: aload 4
invokevirtual com.oracle.svm.hosted.substitute.MethodDescriptor.platforms:()Ljava/util/List;
ifnull 25
new com.oracle.svm.hosted.substitute.PlatformsDescriptor$PlatformsImpl
dup
aload 4
dup
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
pop
aload 0
getfield com.oracle.svm.hosted.substitute.DeclarativeSubstitutionProcessor.imageClassLoader:Lcom/oracle/svm/hosted/ImageClassLoader;
invokespecial com.oracle.svm.hosted.substitute.PlatformsDescriptor$PlatformsImpl.<init>:(Lcom/oracle/svm/hosted/substitute/PlatformsDescriptor;Lcom/oracle/svm/hosted/ImageClassLoader;)V
goto 26
StackMap locals: com.oracle.svm.hosted.substitute.DeclarativeSubstitutionProcessor java.lang.reflect.AnnotatedElement java.lang.Class top com.oracle.svm.hosted.substitute.MethodDescriptor
StackMap stack:
25: aconst_null
StackMap locals:
StackMap stack: com.oracle.svm.hosted.substitute.PlatformsDescriptor$PlatformsImpl
26: astore 3
start local 3 27: goto 94
end local 3 StackMap locals:
StackMap stack:
28: aload 2
ldc Lcom/oracle/svm/core/annotate/TargetElement;
if_acmpne 31
29: new com.oracle.svm.hosted.substitute.ElementDescriptor$TargetElementImpl
dup
aload 4
dup
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
pop
invokespecial com.oracle.svm.hosted.substitute.ElementDescriptor$TargetElementImpl.<init>:(Lcom/oracle/svm/hosted/substitute/ElementDescriptor;)V
astore 3
start local 3 30: goto 94
end local 3 StackMap locals:
StackMap stack:
31: aload 2
ldc Lcom/oracle/svm/core/annotate/Delete;
if_acmpne 36
32: aload 4
invokevirtual com.oracle.svm.hosted.substitute.MethodDescriptor.delete:()Z
ifeq 33
new com.oracle.svm.hosted.substitute.DeleteImpl
dup
invokespecial com.oracle.svm.hosted.substitute.DeleteImpl.<init>:()V
goto 34
StackMap locals:
StackMap stack:
33: aconst_null
StackMap locals:
StackMap stack: com.oracle.svm.hosted.substitute.DeleteImpl
34: astore 3
start local 3 35: goto 94
end local 3 StackMap locals:
StackMap stack:
36: aload 2
ldc Lcom/oracle/svm/core/annotate/Substitute;
if_acmpne 41
37: aload 4
invokevirtual com.oracle.svm.hosted.substitute.MethodDescriptor.substitute:()Z
ifeq 38
new com.oracle.svm.hosted.substitute.SubstituteImpl
dup
invokespecial com.oracle.svm.hosted.substitute.SubstituteImpl.<init>:()V
goto 39
StackMap locals:
StackMap stack:
38: aconst_null
StackMap locals:
StackMap stack: com.oracle.svm.hosted.substitute.SubstituteImpl
39: astore 3
start local 3 40: goto 94
end local 3 StackMap locals:
StackMap stack:
41: aload 2
ldc Lcom/oracle/svm/core/annotate/AnnotateOriginal;
if_acmpne 46
42: aload 4
invokevirtual com.oracle.svm.hosted.substitute.MethodDescriptor.annotateOriginal:()Z
ifeq 43
new com.oracle.svm.hosted.substitute.AnnotateOriginalImpl
dup
invokespecial com.oracle.svm.hosted.substitute.AnnotateOriginalImpl.<init>:()V
goto 44
StackMap locals:
StackMap stack:
43: aconst_null
StackMap locals:
StackMap stack: com.oracle.svm.hosted.substitute.AnnotateOriginalImpl
44: astore 3
start local 3 45: goto 94
end local 3 StackMap locals:
StackMap stack:
46: aload 2
ldc Lcom/oracle/svm/core/annotate/KeepOriginal;
if_acmpne 51
47: aload 4
invokevirtual com.oracle.svm.hosted.substitute.MethodDescriptor.keepOriginal:()Z
ifeq 48
new com.oracle.svm.hosted.substitute.KeepOriginalImpl
dup
invokespecial com.oracle.svm.hosted.substitute.KeepOriginalImpl.<init>:()V
goto 49
StackMap locals:
StackMap stack:
48: aconst_null
StackMap locals:
StackMap stack: com.oracle.svm.hosted.substitute.KeepOriginalImpl
49: astore 3
start local 3 50: goto 94
end local 3 StackMap locals:
StackMap stack:
51: aload 2
ldc Lcom/oracle/svm/core/annotate/Alias;
if_acmpne 56
52: aload 4
invokevirtual com.oracle.svm.hosted.substitute.MethodDescriptor.alias:()Z
ifeq 53
new com.oracle.svm.hosted.substitute.AliasImpl
dup
invokespecial com.oracle.svm.hosted.substitute.AliasImpl.<init>:()V
goto 54
StackMap locals:
StackMap stack:
53: aconst_null
StackMap locals:
StackMap stack: com.oracle.svm.hosted.substitute.AliasImpl
54: astore 3
start local 3 55: goto 94
end local 3 56: StackMap locals:
StackMap stack:
new java.lang.StringBuilder
dup
ldc "Unexpected annotation type: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 2
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokestatic com.oracle.svm.core.util.VMError.shouldNotReachHere:(Ljava/lang/String;)Ljava/lang/RuntimeException;
athrow
end local 4 57: StackMap locals: com.oracle.svm.hosted.substitute.DeclarativeSubstitutionProcessor java.lang.reflect.AnnotatedElement java.lang.Class
StackMap stack:
aload 1
instanceof java.lang.reflect.Field
ifeq 93
aload 0
getfield com.oracle.svm.hosted.substitute.DeclarativeSubstitutionProcessor.fieldDescriptors:Ljava/util/Map;
aload 1
invokeinterface java.util.Map.containsKey:(Ljava/lang/Object;)Z
ifeq 93
58: aload 0
getfield com.oracle.svm.hosted.substitute.DeclarativeSubstitutionProcessor.fieldDescriptors:Ljava/util/Map;
aload 1
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast com.oracle.svm.hosted.substitute.FieldDescriptor
astore 4
start local 4 59: aload 2
ldc Lorg/graalvm/nativeimage/Platforms;
if_acmpne 64
60: aload 4
invokevirtual com.oracle.svm.hosted.substitute.FieldDescriptor.platforms:()Ljava/util/List;
ifnull 61
new com.oracle.svm.hosted.substitute.PlatformsDescriptor$PlatformsImpl
dup
aload 4
dup
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
pop
aload 0
getfield com.oracle.svm.hosted.substitute.DeclarativeSubstitutionProcessor.imageClassLoader:Lcom/oracle/svm/hosted/ImageClassLoader;
invokespecial com.oracle.svm.hosted.substitute.PlatformsDescriptor$PlatformsImpl.<init>:(Lcom/oracle/svm/hosted/substitute/PlatformsDescriptor;Lcom/oracle/svm/hosted/ImageClassLoader;)V
goto 62
StackMap locals: com.oracle.svm.hosted.substitute.DeclarativeSubstitutionProcessor java.lang.reflect.AnnotatedElement java.lang.Class top com.oracle.svm.hosted.substitute.FieldDescriptor
StackMap stack:
61: aconst_null
StackMap locals:
StackMap stack: com.oracle.svm.hosted.substitute.PlatformsDescriptor$PlatformsImpl
62: astore 3
start local 3 63: goto 94
end local 3 StackMap locals:
StackMap stack:
64: aload 2
ldc Lcom/oracle/svm/core/annotate/TargetElement;
if_acmpne 67
65: new com.oracle.svm.hosted.substitute.ElementDescriptor$TargetElementImpl
dup
aload 4
dup
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
pop
invokespecial com.oracle.svm.hosted.substitute.ElementDescriptor$TargetElementImpl.<init>:(Lcom/oracle/svm/hosted/substitute/ElementDescriptor;)V
astore 3
start local 3 66: goto 94
end local 3 StackMap locals:
StackMap stack:
67: aload 2
ldc Lcom/oracle/svm/core/annotate/Delete;
if_acmpne 72
68: aload 4
invokevirtual com.oracle.svm.hosted.substitute.FieldDescriptor.delete:()Z
ifeq 69
new com.oracle.svm.hosted.substitute.DeleteImpl
dup
invokespecial com.oracle.svm.hosted.substitute.DeleteImpl.<init>:()V
goto 70
StackMap locals:
StackMap stack:
69: aconst_null
StackMap locals:
StackMap stack: com.oracle.svm.hosted.substitute.DeleteImpl
70: astore 3
start local 3 71: goto 94
end local 3 StackMap locals:
StackMap stack:
72: aload 2
ldc Lcom/oracle/svm/core/annotate/Alias;
if_acmpne 77
73: aload 4
invokevirtual com.oracle.svm.hosted.substitute.FieldDescriptor.alias:()Z
ifeq 74
new com.oracle.svm.hosted.substitute.AliasImpl
dup
invokespecial com.oracle.svm.hosted.substitute.AliasImpl.<init>:()V
goto 75
StackMap locals:
StackMap stack:
74: aconst_null
StackMap locals:
StackMap stack: com.oracle.svm.hosted.substitute.AliasImpl
75: astore 3
start local 3 76: goto 94
end local 3 StackMap locals:
StackMap stack:
77: aload 2
ldc Lcom/oracle/svm/core/annotate/Inject;
if_acmpne 82
78: aload 4
invokevirtual com.oracle.svm.hosted.substitute.FieldDescriptor.inject:()Z
ifeq 79
new com.oracle.svm.hosted.substitute.InjectImpl
dup
invokespecial com.oracle.svm.hosted.substitute.InjectImpl.<init>:()V
goto 80
StackMap locals:
StackMap stack:
79: aconst_null
StackMap locals:
StackMap stack: com.oracle.svm.hosted.substitute.InjectImpl
80: astore 3
start local 3 81: goto 94
end local 3 StackMap locals:
StackMap stack:
82: aload 2
ldc Lcom/oracle/svm/core/annotate/RecomputeFieldValue;
if_acmpne 87
83: aload 4
invokevirtual com.oracle.svm.hosted.substitute.FieldDescriptor.kind:()Lcom/oracle/svm/core/annotate/RecomputeFieldValue$Kind;
ifnull 84
new com.oracle.svm.hosted.substitute.FieldDescriptor$RecomputeFieldValueImpl
dup
aload 4
dup
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
pop
invokespecial com.oracle.svm.hosted.substitute.FieldDescriptor$RecomputeFieldValueImpl.<init>:(Lcom/oracle/svm/hosted/substitute/FieldDescriptor;)V
goto 85
StackMap locals:
StackMap stack:
84: aconst_null
StackMap locals:
StackMap stack: com.oracle.svm.hosted.substitute.FieldDescriptor$RecomputeFieldValueImpl
85: astore 3
start local 3 86: goto 94
end local 3 StackMap locals:
StackMap stack:
87: aload 2
ldc Lcom/oracle/svm/core/annotate/InjectAccessors;
if_acmpne 92
88: aload 4
invokevirtual com.oracle.svm.hosted.substitute.FieldDescriptor.injectAccessors:()Ljava/lang/String;
ifnull 89
new com.oracle.svm.hosted.substitute.FieldDescriptor$InjectAccessorsImpl
dup
aload 4
dup
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
pop
aload 0
getfield com.oracle.svm.hosted.substitute.DeclarativeSubstitutionProcessor.imageClassLoader:Lcom/oracle/svm/hosted/ImageClassLoader;
invokespecial com.oracle.svm.hosted.substitute.FieldDescriptor$InjectAccessorsImpl.<init>:(Lcom/oracle/svm/hosted/substitute/FieldDescriptor;Lcom/oracle/svm/hosted/ImageClassLoader;)V
goto 90
StackMap locals:
StackMap stack:
89: aconst_null
StackMap locals:
StackMap stack: com.oracle.svm.hosted.substitute.FieldDescriptor$InjectAccessorsImpl
90: astore 3
start local 3 91: goto 94
end local 3 92: StackMap locals:
StackMap stack:
new java.lang.StringBuilder
dup
ldc "Unexpected annotation type: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 2
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokestatic com.oracle.svm.core.util.VMError.shouldNotReachHere:(Ljava/lang/String;)Ljava/lang/RuntimeException;
athrow
end local 4 93: StackMap locals: com.oracle.svm.hosted.substitute.DeclarativeSubstitutionProcessor java.lang.reflect.AnnotatedElement java.lang.Class
StackMap stack:
aload 0
aload 1
aload 2
invokespecial com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.lookupAnnotation:(Ljava/lang/reflect/AnnotatedElement;Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
astore 3
start local 3 94: StackMap locals: java.lang.annotation.Annotation
StackMap stack:
aload 2
aload 3
invokevirtual java.lang.Class.cast:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.annotation.Annotation
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 95 0 this Lcom/oracle/svm/hosted/substitute/DeclarativeSubstitutionProcessor;
0 95 1 element Ljava/lang/reflect/AnnotatedElement;
0 95 2 annotationClass Ljava/lang/Class<TT;>;
6 7 3 result Ljava/lang/annotation/Annotation;
9 10 3 result Ljava/lang/annotation/Annotation;
14 15 3 result Ljava/lang/annotation/Annotation;
19 20 3 result Ljava/lang/annotation/Annotation;
27 28 3 result Ljava/lang/annotation/Annotation;
30 31 3 result Ljava/lang/annotation/Annotation;
35 36 3 result Ljava/lang/annotation/Annotation;
40 41 3 result Ljava/lang/annotation/Annotation;
45 46 3 result Ljava/lang/annotation/Annotation;
50 51 3 result Ljava/lang/annotation/Annotation;
55 56 3 result Ljava/lang/annotation/Annotation;
63 64 3 result Ljava/lang/annotation/Annotation;
66 67 3 result Ljava/lang/annotation/Annotation;
71 72 3 result Ljava/lang/annotation/Annotation;
76 77 3 result Ljava/lang/annotation/Annotation;
81 82 3 result Ljava/lang/annotation/Annotation;
86 87 3 result Ljava/lang/annotation/Annotation;
91 92 3 result Ljava/lang/annotation/Annotation;
94 95 3 result Ljava/lang/annotation/Annotation;
2 21 4 classDescriptor Lcom/oracle/svm/hosted/substitute/ClassDescriptor;
23 57 4 methodDescriptor Lcom/oracle/svm/hosted/substitute/MethodDescriptor;
59 93 4 fieldDescriptor Lcom/oracle/svm/hosted/substitute/FieldDescriptor;
Signature: <T::Ljava/lang/annotation/Annotation;>(Ljava/lang/reflect/AnnotatedElement;Ljava/lang/Class<TT;>;)TT;
MethodParameters:
Name Flags
element
annotationClass
}
SourceFile: "DeclarativeSubstitutionProcessor.java"
NestMembers:
com.oracle.svm.hosted.substitute.DeclarativeSubstitutionProcessor$Options
InnerClasses:
public final Kind = com.oracle.svm.core.annotate.RecomputeFieldValue$Kind of com.oracle.svm.core.annotate.RecomputeFieldValue
public final Options = com.oracle.svm.core.configure.ConfigurationFiles$Options of com.oracle.svm.core.configure.ConfigurationFiles
public UserException = com.oracle.svm.core.util.UserError$UserException of com.oracle.svm.core.util.UserError
TargetClassImpl = com.oracle.svm.hosted.substitute.ClassDescriptor$TargetClassImpl of com.oracle.svm.hosted.substitute.ClassDescriptor
public Options = com.oracle.svm.hosted.substitute.DeclarativeSubstitutionProcessor$Options of com.oracle.svm.hosted.substitute.DeclarativeSubstitutionProcessor
TargetElementImpl = com.oracle.svm.hosted.substitute.ElementDescriptor$TargetElementImpl of com.oracle.svm.hosted.substitute.ElementDescriptor
InjectAccessorsImpl = com.oracle.svm.hosted.substitute.FieldDescriptor$InjectAccessorsImpl of com.oracle.svm.hosted.substitute.FieldDescriptor
RecomputeFieldValueImpl = com.oracle.svm.hosted.substitute.FieldDescriptor$RecomputeFieldValueImpl of com.oracle.svm.hosted.substitute.FieldDescriptor
PlatformsImpl = com.oracle.svm.hosted.substitute.PlatformsDescriptor$PlatformsImpl of com.oracle.svm.hosted.substitute.PlatformsDescriptor