public class com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor extends com.oracle.graal.pointsto.infrastructure.SubstitutionProcessor
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor
super_class: com.oracle.graal.pointsto.infrastructure.SubstitutionProcessor
{
private static final int ARRAY_DIMENSIONS;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 8
protected final com.oracle.svm.hosted.ImageClassLoader imageClassLoader;
descriptor: Lcom/oracle/svm/hosted/ImageClassLoader;
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
protected final jdk.vm.ci.meta.MetaAccessProvider metaAccess;
descriptor: Ljdk/vm/ci/meta/MetaAccessProvider;
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
private final java.util.Map<java.lang.Object, com.oracle.svm.core.annotate.Delete> deleteAnnotations;
descriptor: Ljava/util/Map;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/Map<Ljava/lang/Object;Lcom/oracle/svm/core/annotate/Delete;>;
private final java.util.Map<jdk.vm.ci.meta.ResolvedJavaType, jdk.vm.ci.meta.ResolvedJavaType> typeSubstitutions;
descriptor: Ljava/util/Map;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/Map<Ljdk/vm/ci/meta/ResolvedJavaType;Ljdk/vm/ci/meta/ResolvedJavaType;>;
private final java.util.Map<jdk.vm.ci.meta.ResolvedJavaMethod, jdk.vm.ci.meta.ResolvedJavaMethod> methodSubstitutions;
descriptor: Ljava/util/Map;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/Map<Ljdk/vm/ci/meta/ResolvedJavaMethod;Ljdk/vm/ci/meta/ResolvedJavaMethod;>;
private final java.util.Map<jdk.vm.ci.meta.ResolvedJavaMethod, jdk.vm.ci.meta.ResolvedJavaMethod> polymorphicMethodSubstitutions;
descriptor: Ljava/util/Map;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/Map<Ljdk/vm/ci/meta/ResolvedJavaMethod;Ljdk/vm/ci/meta/ResolvedJavaMethod;>;
private final java.util.Map<jdk.vm.ci.meta.ResolvedJavaField, jdk.vm.ci.meta.ResolvedJavaField> fieldSubstitutions;
descriptor: Ljava/util/Map;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/Map<Ljdk/vm/ci/meta/ResolvedJavaField;Ljdk/vm/ci/meta/ResolvedJavaField;>;
private com.oracle.svm.hosted.classinitialization.ClassInitializationSupport classInitializationSupport;
descriptor: Lcom/oracle/svm/hosted/classinitialization/ClassInitializationSupport;
flags: (0x0002) ACC_PRIVATE
static final int SUBSTITUTION_DELETE_HOLDER;
descriptor: I
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 0
RuntimeVisibleAnnotations:
com.oracle.svm.core.annotate.Delete(value = "The declaring class of this element has been substituted, but this element is not present in the substitution class")
static final com.oracle.svm.core.annotate.Delete SUBSTITUTION_DELETE;
descriptor: Lcom/oracle/svm/core/annotate/Delete;
flags: (0x0018) ACC_STATIC, ACC_FINAL
static final boolean $assertionsDisabled;
descriptor: Z
flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC
private static volatile int[] $SWITCH_TABLE$com$oracle$svm$core$annotate$RecomputeFieldValue$Kind;
descriptor: [I
flags: (0x104a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE, ACC_SYNTHETIC
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=1, args_size=0
0: ldc Lcom/oracle/svm/hosted/substitute/AnnotationSubstitutionProcessor;
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 com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.$assertionsDisabled:Z
3: ldc Lcom/oracle/svm/hosted/substitute/AnnotationSubstitutionProcessor;
ldc "SUBSTITUTION_DELETE_HOLDER"
invokevirtual java.lang.Class.getDeclaredField:(Ljava/lang/String;)Ljava/lang/reflect/Field;
ldc Lcom/oracle/svm/core/annotate/Delete;
invokevirtual java.lang.reflect.Field.getAnnotation:(Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
checkcast com.oracle.svm.core.annotate.Delete
putstatic com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.SUBSTITUTION_DELETE:Lcom/oracle/svm/core/annotate/Delete;
4: goto 7
StackMap locals:
StackMap stack: java.lang.NoSuchFieldException
5: astore 0
start local 0 6: aload 0
invokestatic com.oracle.svm.core.util.VMError.shouldNotReachHere:(Ljava/lang/Throwable;)Ljava/lang/RuntimeException;
athrow
end local 0 7: StackMap locals:
StackMap stack:
return
LocalVariableTable:
Start End Slot Name Signature
6 7 0 ex Ljava/lang/NoSuchFieldException;
Exception table:
from to target type
3 4 5 Class java.lang.NoSuchFieldException
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=3, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
invokespecial com.oracle.graal.pointsto.infrastructure.SubstitutionProcessor.<init>:()V
1: aload 0
aload 1
putfield com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.imageClassLoader:Lcom/oracle/svm/hosted/ImageClassLoader;
2: aload 0
aload 2
putfield com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.metaAccess:Ljdk/vm/ci/meta/MetaAccessProvider;
3: aload 0
aload 3
putfield com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.classInitializationSupport:Lcom/oracle/svm/hosted/classinitialization/ClassInitializationSupport;
4: aload 0
new java.util.HashMap
dup
invokespecial java.util.HashMap.<init>:()V
putfield com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.deleteAnnotations:Ljava/util/Map;
5: aload 0
new java.util.HashMap
dup
invokespecial java.util.HashMap.<init>:()V
putfield com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.typeSubstitutions:Ljava/util/Map;
6: aload 0
new java.util.concurrent.ConcurrentHashMap
dup
invokespecial java.util.concurrent.ConcurrentHashMap.<init>:()V
putfield com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.methodSubstitutions:Ljava/util/Map;
7: aload 0
new java.util.HashMap
dup
invokespecial java.util.HashMap.<init>:()V
putfield com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.polymorphicMethodSubstitutions:Ljava/util/Map;
8: aload 0
new java.util.HashMap
dup
invokespecial java.util.HashMap.<init>:()V
putfield com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.fieldSubstitutions:Ljava/util/Map;
9: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lcom/oracle/svm/hosted/substitute/AnnotationSubstitutionProcessor;
0 10 1 imageClassLoader Lcom/oracle/svm/hosted/ImageClassLoader;
0 10 2 metaAccess Ljdk/vm/ci/meta/MetaAccessProvider;
0 10 3 classInitializationSupport Lcom/oracle/svm/hosted/classinitialization/ClassInitializationSupport;
MethodParameters:
Name Flags
imageClassLoader
metaAccess
classInitializationSupport
public jdk.vm.ci.meta.ResolvedJavaType lookup(jdk.vm.ci.meta.ResolvedJavaType);
descriptor: (Ljdk/vm/ci/meta/ResolvedJavaType;)Ljdk/vm/ci/meta/ResolvedJavaType;
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=4, args_size=2
start local 0 start local 1 0: aload 0
getfield com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.deleteAnnotations:Ljava/util/Map;
aload 1
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast com.oracle.svm.core.annotate.Delete
astore 2
start local 2 1: aload 2
ifnull 3
2: new com.oracle.svm.hosted.substitute.DeletedElementException
dup
aload 1
aload 2
iconst_1
invokestatic com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.deleteErrorMessage:(Ljava/lang/reflect/AnnotatedElement;Lcom/oracle/svm/core/annotate/Delete;Z)Ljava/lang/String;
invokespecial com.oracle.svm.hosted.substitute.DeletedElementException.<init>:(Ljava/lang/String;)V
athrow
3: StackMap locals: com.oracle.svm.core.annotate.Delete
StackMap stack:
aload 0
getfield com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.typeSubstitutions:Ljava/util/Map;
aload 1
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast jdk.vm.ci.meta.ResolvedJavaType
astore 3
start local 3 4: aload 3
ifnull 6
5: aload 3
areturn
6: StackMap locals: jdk.vm.ci.meta.ResolvedJavaType
StackMap stack:
aload 1
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lcom/oracle/svm/hosted/substitute/AnnotationSubstitutionProcessor;
0 7 1 type Ljdk/vm/ci/meta/ResolvedJavaType;
1 7 2 deleteAnnotation Lcom/oracle/svm/core/annotate/Delete;
4 7 3 substitution Ljdk/vm/ci/meta/ResolvedJavaType;
MethodParameters:
Name Flags
type
public jdk.vm.ci.meta.ResolvedJavaType resolve(jdk.vm.ci.meta.ResolvedJavaType);
descriptor: (Ljdk/vm/ci/meta/ResolvedJavaType;)Ljdk/vm/ci/meta/ResolvedJavaType;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=2, args_size=2
start local 0 start local 1 0: aload 1
instanceof com.oracle.svm.hosted.substitute.SubstitutionType
ifeq 2
1: aload 1
checkcast com.oracle.svm.hosted.substitute.SubstitutionType
invokevirtual com.oracle.svm.hosted.substitute.SubstitutionType.getAnnotated:()Ljdk/vm/ci/meta/ResolvedJavaType;
areturn
2: StackMap locals:
StackMap stack:
aload 1
instanceof com.oracle.svm.hosted.annotation.AnnotationSubstitutionType
ifeq 4
3: aload 1
checkcast com.oracle.svm.hosted.annotation.AnnotationSubstitutionType
invokevirtual com.oracle.svm.hosted.annotation.AnnotationSubstitutionType.getOriginal:()Ljdk/vm/ci/meta/ResolvedJavaType;
areturn
4: StackMap locals:
StackMap stack:
aload 1
instanceof com.oracle.svm.hosted.substitute.InjectedFieldsType
ifeq 6
5: aload 1
checkcast com.oracle.svm.hosted.substitute.InjectedFieldsType
invokevirtual com.oracle.svm.hosted.substitute.InjectedFieldsType.getOriginal:()Ljdk/vm/ci/meta/ResolvedJavaType;
areturn
6: StackMap locals:
StackMap stack:
aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lcom/oracle/svm/hosted/substitute/AnnotationSubstitutionProcessor;
0 7 1 type Ljdk/vm/ci/meta/ResolvedJavaType;
MethodParameters:
Name Flags
type
public jdk.vm.ci.meta.ResolvedJavaField lookup(jdk.vm.ci.meta.ResolvedJavaField);
descriptor: (Ljdk/vm/ci/meta/ResolvedJavaField;)Ljdk/vm/ci/meta/ResolvedJavaField;
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=4, args_size=2
start local 0 start local 1 0: aload 0
getfield com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.deleteAnnotations:Ljava/util/Map;
aload 1
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast com.oracle.svm.core.annotate.Delete
astore 2
start local 2 1: aload 2
ifnull 3
2: new com.oracle.svm.hosted.substitute.DeletedElementException
dup
aload 1
aload 2
iconst_1
invokestatic com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.deleteErrorMessage:(Ljava/lang/reflect/AnnotatedElement;Lcom/oracle/svm/core/annotate/Delete;Z)Ljava/lang/String;
invokespecial com.oracle.svm.hosted.substitute.DeletedElementException.<init>:(Ljava/lang/String;)V
athrow
3: StackMap locals: com.oracle.svm.core.annotate.Delete
StackMap stack:
aload 0
getfield com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.fieldSubstitutions:Ljava/util/Map;
aload 1
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast jdk.vm.ci.meta.ResolvedJavaField
astore 3
start local 3 4: aload 3
ifnull 6
5: aload 3
areturn
6: StackMap locals: jdk.vm.ci.meta.ResolvedJavaField
StackMap stack:
aload 1
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lcom/oracle/svm/hosted/substitute/AnnotationSubstitutionProcessor;
0 7 1 field Ljdk/vm/ci/meta/ResolvedJavaField;
1 7 2 deleteAnnotation Lcom/oracle/svm/core/annotate/Delete;
4 7 3 substitution Ljdk/vm/ci/meta/ResolvedJavaField;
MethodParameters:
Name Flags
field
public boolean isDeleted(jdk.vm.ci.meta.ResolvedJavaField);
descriptor: (Ljdk/vm/ci/meta/ResolvedJavaField;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.deleteAnnotations:Ljava/util/Map;
aload 1
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
ifnull 1
iconst_1
ireturn
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/oracle/svm/hosted/substitute/AnnotationSubstitutionProcessor;
0 2 1 field Ljdk/vm/ci/meta/ResolvedJavaField;
MethodParameters:
Name Flags
field
public boolean isDeleted(java.lang.Class<?>);
descriptor: (Ljava/lang/Class;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.deleteAnnotations:Ljava/util/Map;
aload 0
getfield com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.metaAccess:Ljdk/vm/ci/meta/MetaAccessProvider;
aload 1
invokeinterface jdk.vm.ci.meta.MetaAccessProvider.lookupJavaType:(Ljava/lang/Class;)Ljdk/vm/ci/meta/ResolvedJavaType;
invokeinterface java.util.Map.containsKey:(Ljava/lang/Object;)Z
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/svm/hosted/substitute/AnnotationSubstitutionProcessor;
0 1 1 clazz Ljava/lang/Class<*>;
Signature: (Ljava/lang/Class<*>;)Z
MethodParameters:
Name Flags
clazz
public java.util.Optional<jdk.vm.ci.meta.ResolvedJavaField> findSubstitution(jdk.vm.ci.meta.ResolvedJavaField);
descriptor: (Ljdk/vm/ci/meta/ResolvedJavaField;)Ljava/util/Optional;
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=2, args_size=2
start local 0 start local 1 0: getstatic com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.$assertionsDisabled:Z
ifne 1
aload 0
aload 1
invokevirtual com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.isDeleted:(Ljdk/vm/ci/meta/ResolvedJavaField;)Z
ifeq 1
new java.lang.AssertionError
dup
new java.lang.StringBuilder
dup
ldc "Field "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
ldc "%H.%n"
invokeinterface jdk.vm.ci.meta.ResolvedJavaField.format:(Ljava/lang/String;)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "is deleted."
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
1: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.fieldSubstitutions:Ljava/util/Map;
aload 1
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast jdk.vm.ci.meta.ResolvedJavaField
invokestatic java.util.Optional.ofNullable:(Ljava/lang/Object;)Ljava/util/Optional;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/oracle/svm/hosted/substitute/AnnotationSubstitutionProcessor;
0 2 1 field Ljdk/vm/ci/meta/ResolvedJavaField;
Signature: (Ljdk/vm/ci/meta/ResolvedJavaField;)Ljava/util/Optional<Ljdk/vm/ci/meta/ResolvedJavaField;>;
MethodParameters:
Name Flags
field
public java.util.Optional<jdk.vm.ci.meta.ResolvedJavaType> findSubstitution(jdk.vm.ci.meta.ResolvedJavaType);
descriptor: (Ljdk/vm/ci/meta/ResolvedJavaType;)Ljava/util/Optional;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.typeSubstitutions:Ljava/util/Map;
aload 1
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast jdk.vm.ci.meta.ResolvedJavaType
invokestatic java.util.Optional.ofNullable:(Ljava/lang/Object;)Ljava/util/Optional;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/svm/hosted/substitute/AnnotationSubstitutionProcessor;
0 1 1 type Ljdk/vm/ci/meta/ResolvedJavaType;
Signature: (Ljdk/vm/ci/meta/ResolvedJavaType;)Ljava/util/Optional<Ljdk/vm/ci/meta/ResolvedJavaType;>;
MethodParameters:
Name Flags
type
public boolean isAliased(jdk.vm.ci.meta.ResolvedJavaType);
descriptor: (Ljdk/vm/ci/meta/ResolvedJavaType;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.typeSubstitutions:Ljava/util/Map;
aload 1
invokeinterface java.util.Map.containsValue:(Ljava/lang/Object;)Z
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/svm/hosted/substitute/AnnotationSubstitutionProcessor;
0 1 1 type Ljdk/vm/ci/meta/ResolvedJavaType;
MethodParameters:
Name Flags
type
public jdk.vm.ci.meta.ResolvedJavaMethod lookup(jdk.vm.ci.meta.ResolvedJavaMethod);
descriptor: (Ljdk/vm/ci/meta/ResolvedJavaMethod;)Ljdk/vm/ci/meta/ResolvedJavaMethod;
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=11, args_size=2
start local 0 start local 1 0: aload 0
getfield com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.deleteAnnotations:Ljava/util/Map;
aload 1
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast com.oracle.svm.core.annotate.Delete
astore 2
start local 2 1: aload 2
ifnull 3
2: new com.oracle.svm.hosted.substitute.DeletedElementException
dup
aload 1
aload 2
iconst_1
invokestatic com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.deleteErrorMessage:(Ljava/lang/reflect/AnnotatedElement;Lcom/oracle/svm/core/annotate/Delete;Z)Ljava/lang/String;
invokespecial com.oracle.svm.hosted.substitute.DeletedElementException.<init>:(Ljava/lang/String;)V
athrow
3: StackMap locals: com.oracle.svm.core.annotate.Delete
StackMap stack:
aload 0
getfield com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.methodSubstitutions:Ljava/util/Map;
aload 1
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast jdk.vm.ci.meta.ResolvedJavaMethod
astore 3
start local 3 4: aload 3
ifnull 6
5: aload 3
areturn
6: StackMap locals: jdk.vm.ci.meta.ResolvedJavaMethod
StackMap stack:
aload 0
getfield com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.polymorphicMethodSubstitutions:Ljava/util/Map;
invokeinterface java.util.Map.keySet:()Ljava/util/Set;
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 5
goto 25
StackMap locals: com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor jdk.vm.ci.meta.ResolvedJavaMethod com.oracle.svm.core.annotate.Delete jdk.vm.ci.meta.ResolvedJavaMethod top java.util.Iterator
StackMap stack:
7: aload 5
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast jdk.vm.ci.meta.ResolvedJavaMethod
astore 4
start local 4 8: aload 1
invokeinterface jdk.vm.ci.meta.ResolvedJavaMethod.getDeclaringClass:()Ljdk/vm/ci/meta/ResolvedJavaType;
aload 4
invokeinterface jdk.vm.ci.meta.ResolvedJavaMethod.getDeclaringClass:()Ljdk/vm/ci/meta/ResolvedJavaType;
invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
ifeq 25
aload 1
invokeinterface jdk.vm.ci.meta.ResolvedJavaMethod.getName:()Ljava/lang/String;
aload 4
invokeinterface jdk.vm.ci.meta.ResolvedJavaMethod.getName:()Ljava/lang/String;
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 25
9: aload 0
getfield com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.polymorphicMethodSubstitutions:Ljava/util/Map;
aload 4
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast com.oracle.svm.hosted.substitute.SubstitutionMethod
astore 6
start local 6 10: aload 1
invokeinterface jdk.vm.ci.meta.ResolvedJavaMethod.isVarArgs:()Z
ifeq 12
11: aload 6
areturn
12: StackMap locals: com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor jdk.vm.ci.meta.ResolvedJavaMethod com.oracle.svm.core.annotate.Delete jdk.vm.ci.meta.ResolvedJavaMethod jdk.vm.ci.meta.ResolvedJavaMethod java.util.Iterator com.oracle.svm.hosted.substitute.SubstitutionMethod
StackMap stack:
new com.oracle.svm.hosted.substitute.PolymorphicSignatureWrapperMethod
dup
aload 6
aload 1
invokespecial com.oracle.svm.hosted.substitute.PolymorphicSignatureWrapperMethod.<init>:(Lcom/oracle/svm/hosted/substitute/SubstitutionMethod;Ljdk/vm/ci/meta/ResolvedJavaMethod;)V
astore 7
start local 7 13: new com.oracle.svm.hosted.substitute.SubstitutionMethod
dup
aload 1
aload 7
invokespecial com.oracle.svm.hosted.substitute.SubstitutionMethod.<init>:(Ljdk/vm/ci/meta/ResolvedJavaMethod;Ljdk/vm/ci/meta/ResolvedJavaMethod;)V
astore 8
start local 8 14: aload 0
getfield com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.methodSubstitutions:Ljava/util/Map;
dup
astore 9
monitorenter
15: aload 0
getfield com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.methodSubstitutions:Ljava/util/Map;
aload 1
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast jdk.vm.ci.meta.ResolvedJavaMethod
astore 10
start local 10 16: aload 10
ifnull 19
17: aload 10
aload 9
monitorexit
18: areturn
19: StackMap locals: com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor jdk.vm.ci.meta.ResolvedJavaMethod com.oracle.svm.core.annotate.Delete jdk.vm.ci.meta.ResolvedJavaMethod jdk.vm.ci.meta.ResolvedJavaMethod java.util.Iterator com.oracle.svm.hosted.substitute.SubstitutionMethod com.oracle.svm.hosted.substitute.PolymorphicSignatureWrapperMethod com.oracle.svm.hosted.substitute.SubstitutionMethod java.util.Map jdk.vm.ci.meta.ResolvedJavaMethod
StackMap stack:
aload 0
getfield com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.methodSubstitutions:Ljava/util/Map;
aload 7
aload 1
aload 8
invokestatic com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.register:(Ljava/util/Map;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
end local 10 20: aload 9
monitorexit
21: goto 24
StackMap locals: com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor jdk.vm.ci.meta.ResolvedJavaMethod com.oracle.svm.core.annotate.Delete jdk.vm.ci.meta.ResolvedJavaMethod jdk.vm.ci.meta.ResolvedJavaMethod java.util.Iterator com.oracle.svm.hosted.substitute.SubstitutionMethod com.oracle.svm.hosted.substitute.PolymorphicSignatureWrapperMethod com.oracle.svm.hosted.substitute.SubstitutionMethod java.util.Map
StackMap stack: java.lang.Throwable
22: aload 9
monitorexit
23: athrow
24: StackMap locals:
StackMap stack:
aload 8
areturn
end local 8 end local 7 end local 6 end local 4 25: StackMap locals: com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor jdk.vm.ci.meta.ResolvedJavaMethod com.oracle.svm.core.annotate.Delete jdk.vm.ci.meta.ResolvedJavaMethod top java.util.Iterator
StackMap stack:
aload 5
invokeinterface java.util.Iterator.hasNext:()Z
ifne 7
26: aload 1
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 27 0 this Lcom/oracle/svm/hosted/substitute/AnnotationSubstitutionProcessor;
0 27 1 method Ljdk/vm/ci/meta/ResolvedJavaMethod;
1 27 2 deleteAnnotation Lcom/oracle/svm/core/annotate/Delete;
4 27 3 substitution Ljdk/vm/ci/meta/ResolvedJavaMethod;
8 25 4 baseMethod Ljdk/vm/ci/meta/ResolvedJavaMethod;
10 25 6 substitutionBaseMethod Lcom/oracle/svm/hosted/substitute/SubstitutionMethod;
13 25 7 wrapperMethod Lcom/oracle/svm/hosted/substitute/PolymorphicSignatureWrapperMethod;
14 25 8 substitutionMethod Lcom/oracle/svm/hosted/substitute/SubstitutionMethod;
16 20 10 currentSubstitution Ljdk/vm/ci/meta/ResolvedJavaMethod;
Exception table:
from to target type
15 18 22 any
19 21 22 any
22 23 22 any
MethodParameters:
Name Flags
method
public jdk.vm.ci.meta.ResolvedJavaMethod resolve(jdk.vm.ci.meta.ResolvedJavaMethod);
descriptor: (Ljdk/vm/ci/meta/ResolvedJavaMethod;)Ljdk/vm/ci/meta/ResolvedJavaMethod;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=2, args_size=2
start local 0 start local 1 0: aload 1
instanceof com.oracle.svm.hosted.substitute.SubstitutionMethod
ifeq 2
1: aload 1
checkcast com.oracle.svm.hosted.substitute.SubstitutionMethod
invokevirtual com.oracle.svm.hosted.substitute.SubstitutionMethod.getOriginal:()Ljdk/vm/ci/meta/ResolvedJavaMethod;
areturn
2: StackMap locals:
StackMap stack:
aload 1
instanceof com.oracle.svm.hosted.annotation.CustomSubstitutionMethod
ifeq 4
3: aload 1
checkcast com.oracle.svm.hosted.annotation.CustomSubstitutionMethod
invokevirtual com.oracle.svm.hosted.annotation.CustomSubstitutionMethod.getOriginal:()Ljdk/vm/ci/meta/ResolvedJavaMethod;
areturn
4: StackMap locals:
StackMap stack:
aload 1
instanceof com.oracle.svm.hosted.substitute.AnnotatedMethod
ifeq 6
5: aload 1
checkcast com.oracle.svm.hosted.substitute.AnnotatedMethod
invokevirtual com.oracle.svm.hosted.substitute.AnnotatedMethod.getOriginal:()Ljdk/vm/ci/meta/ResolvedJavaMethod;
areturn
6: StackMap locals:
StackMap stack:
aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lcom/oracle/svm/hosted/substitute/AnnotationSubstitutionProcessor;
0 7 1 method Ljdk/vm/ci/meta/ResolvedJavaMethod;
MethodParameters:
Name Flags
method
public void processComputedValueFields(com.oracle.graal.pointsto.BigBang);
descriptor: (Lcom/oracle/graal/pointsto/BigBang;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=7, args_size=2
start local 0 start local 1 0: aload 0
getfield com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.fieldSubstitutions:Ljava/util/Map;
invokeinterface java.util.Map.values:()Ljava/util/Collection;
invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
astore 3
goto 10
StackMap locals: com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor com.oracle.graal.pointsto.BigBang top java.util.Iterator
StackMap stack:
1: aload 3
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast jdk.vm.ci.meta.ResolvedJavaField
astore 2
start local 2 2: aload 2
instanceof com.oracle.svm.hosted.substitute.ComputedValue
ifeq 10
3: aload 2
checkcast com.oracle.svm.hosted.substitute.ComputedValue
astore 4
start local 4 4: invokestatic com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.$SWITCH_TABLE$com$oracle$svm$core$annotate$RecomputeFieldValue$Kind:()[I
aload 4
invokeinterface com.oracle.svm.hosted.substitute.ComputedValue.getRecomputeValueKind:()Lcom/oracle/svm/core/annotate/RecomputeFieldValue$Kind;
invokevirtual com.oracle.svm.core.annotate.RecomputeFieldValue$Kind.ordinal:()I
iaload
tableswitch { // 5 - 5
5: 5
default: 10
}
5: StackMap locals: com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor com.oracle.graal.pointsto.BigBang jdk.vm.ci.meta.ResolvedJavaField java.util.Iterator com.oracle.svm.hosted.substitute.ComputedValue
StackMap stack:
aload 1
invokevirtual com.oracle.graal.pointsto.BigBang.getMetaAccess:()Lcom/oracle/graal/pointsto/meta/AnalysisMetaAccess;
aload 4
invokeinterface com.oracle.svm.hosted.substitute.ComputedValue.getTargetField:()Ljava/lang/reflect/Field;
invokevirtual java.lang.reflect.Field.getDeclaringClass:()Ljava/lang/Class;
invokevirtual com.oracle.graal.pointsto.meta.AnalysisMetaAccess.lookupJavaType:(Ljava/lang/Class;)Lcom/oracle/graal/pointsto/meta/AnalysisType;
astore 5
start local 5 6: aload 5
invokevirtual com.oracle.graal.pointsto.meta.AnalysisType.registerAsReachable:()V
7: aload 1
invokevirtual com.oracle.graal.pointsto.BigBang.getMetaAccess:()Lcom/oracle/graal/pointsto/meta/AnalysisMetaAccess;
aload 4
invokeinterface com.oracle.svm.hosted.substitute.ComputedValue.getTargetField:()Ljava/lang/reflect/Field;
invokevirtual com.oracle.graal.pointsto.meta.AnalysisMetaAccess.lookupJavaField:(Ljava/lang/reflect/Field;)Lcom/oracle/graal/pointsto/meta/AnalysisField;
astore 6
start local 6 8: aload 6
invokevirtual com.oracle.graal.pointsto.meta.AnalysisField.registerAsAccessed:()V
9: aload 6
aload 1
invokevirtual com.oracle.graal.pointsto.BigBang.getUniverse:()Lcom/oracle/graal/pointsto/meta/AnalysisUniverse;
invokevirtual com.oracle.graal.pointsto.meta.AnalysisField.registerAsUnsafeAccessed:(Lcom/oracle/graal/pointsto/meta/AnalysisUniverse;)V
end local 6 end local 5 end local 4 end local 2 10: StackMap locals: com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor com.oracle.graal.pointsto.BigBang top java.util.Iterator
StackMap stack:
aload 3
invokeinterface java.util.Iterator.hasNext:()Z
ifne 1
11: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Lcom/oracle/svm/hosted/substitute/AnnotationSubstitutionProcessor;
0 12 1 bb Lcom/oracle/graal/pointsto/BigBang;
2 10 2 field Ljdk/vm/ci/meta/ResolvedJavaField;
4 10 4 cvField Lcom/oracle/svm/hosted/substitute/ComputedValue;
6 10 5 targetFieldDeclaringType Lcom/oracle/graal/pointsto/meta/AnalysisType;
8 10 6 targetField Lcom/oracle/graal/pointsto/meta/AnalysisField;
MethodParameters:
Name Flags
bb
public void init();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=5, args_size=1
start local 0 0: aload 0
invokevirtual com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.findTargetClasses:()Ljava/util/List;
astore 1
start local 1 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;
java/lang/Class.getName()Ljava/lang/String; (5)
(Ljava/lang/Class;)Ljava/lang/String;
invokestatic java.util.Comparator.comparing:(Ljava/util/function/Function;)Ljava/util/Comparator;
invokeinterface java.util.List.sort:(Ljava/util/Comparator;)V
2: aload 1
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 3
goto 5
StackMap locals: com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor java.util.List top java.util.Iterator
StackMap stack:
3: aload 3
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.lang.Class
astore 2
start local 2 4: aload 0
aload 2
invokevirtual com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.handleClass:(Ljava/lang/Class;)V
end local 2 5: StackMap locals:
StackMap stack:
aload 3
invokeinterface java.util.Iterator.hasNext:()Z
ifne 3
6: aload 0
getfield com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.imageClassLoader:Lcom/oracle/svm/hosted/ImageClassLoader;
ldc Ljdk/vm/ci/common/NativeImageReinitialize;
invokevirtual com.oracle.svm.hosted.ImageClassLoader.findAnnotatedFields:(Ljava/lang/Class;)Ljava/util/List;
astore 2
start local 2 7: aload 2
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 4
goto 10
StackMap locals: com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor java.util.List java.util.List top java.util.Iterator
StackMap stack:
8: aload 4
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.lang.reflect.Field
astore 3
start local 3 9: aload 0
aload 3
invokevirtual com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.reinitializeField:(Ljava/lang/reflect/Field;)V
end local 3 10: StackMap locals:
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 8
11: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Lcom/oracle/svm/hosted/substitute/AnnotationSubstitutionProcessor;
1 12 1 annotatedClasses Ljava/util/List<Ljava/lang/Class<*>;>;
4 5 2 annotatedClass Ljava/lang/Class<*>;
7 12 2 annotatedFields Ljava/util/List<Ljava/lang/reflect/Field;>;
9 10 3 annotatedField Ljava/lang/reflect/Field;
protected java.util.List<java.lang.Class<?>> findTargetClasses();
descriptor: ()Ljava/util/List;
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
getfield com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.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;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/svm/hosted/substitute/AnnotationSubstitutionProcessor;
Signature: ()Ljava/util/List<Ljava/lang/Class<*>;>;
private void handleClass(java.lang.Class<?>);
descriptor: (Ljava/lang/Class;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=7, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual java.lang.Class.getModifiers:()I
invokestatic java.lang.reflect.Modifier.isFinal:(I)Z
ifne 1
aload 1
invokevirtual java.lang.Class.isInterface:()Z
ifne 1
iconst_0
goto 2
StackMap locals:
StackMap stack:
1: iconst_1
StackMap locals:
StackMap stack: int
2: ldc "Annotated class must be final: %s"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 1
aastore
invokestatic com.oracle.svm.core.util.UserError.guarantee:(ZLjava/lang/String;[Ljava/lang/Object;)V
3: aload 1
invokevirtual java.lang.Class.getSuperclass:()Ljava/lang/Class;
ldc Ljava/lang/Object;
if_acmpeq 4
aload 1
invokevirtual java.lang.Class.isInterface:()Z
ifne 4
iconst_0
goto 5
StackMap locals:
StackMap stack:
4: iconst_1
StackMap locals:
StackMap stack: int
5: ldc "Annotated class must inherit directly from Object: %s"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 1
aastore
invokestatic com.oracle.svm.core.util.UserError.guarantee:(ZLjava/lang/String;[Ljava/lang/Object;)V
6: ldc Lorg/graalvm/nativeimage/Platform;
invokestatic org.graalvm.nativeimage.ImageSingletons.lookup:(Ljava/lang/Class;)Ljava/lang/Object;
checkcast org.graalvm.nativeimage.Platform
aload 0
aload 1
ldc Lorg/graalvm/nativeimage/Platforms;
invokevirtual com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.lookupAnnotation:(Ljava/lang/reflect/AnnotatedElement;Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
checkcast org.graalvm.nativeimage.Platforms
invokestatic com.oracle.svm.hosted.NativeImageGenerator.includedIn:(Lorg/graalvm/nativeimage/Platform;Lorg/graalvm/nativeimage/Platforms;)Z
ifne 8
7: return
8: StackMap locals:
StackMap stack:
aload 0
aload 1
ldc Lcom/oracle/svm/core/annotate/TargetClass;
invokevirtual com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.lookupAnnotation:(Ljava/lang/reflect/AnnotatedElement;Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
checkcast com.oracle.svm.core.annotate.TargetClass
astore 2
start local 2 9: aload 0
aload 1
aload 2
invokevirtual com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.findTargetClass:(Ljava/lang/Class;Lcom/oracle/svm/core/annotate/TargetClass;)Ljava/lang/Class;
astore 3
start local 3 10: aload 3
ifnonnull 12
11: return
12: StackMap locals: com.oracle.svm.core.annotate.TargetClass java.lang.Class
StackMap stack:
aload 0
getfield com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.classInitializationSupport:Lcom/oracle/svm/hosted/classinitialization/ClassInitializationSupport;
aload 1
ldc "substitutions are always initialized"
iconst_0
invokeinterface com.oracle.svm.hosted.classinitialization.ClassInitializationSupport.forceInitializeHosted:(Ljava/lang/Class;Ljava/lang/String;Z)V
13: aload 0
aload 1
ldc Lcom/oracle/svm/core/annotate/Delete;
invokevirtual com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.lookupAnnotation:(Ljava/lang/reflect/AnnotatedElement;Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
checkcast com.oracle.svm.core.annotate.Delete
astore 4
start local 4 14: aload 0
aload 1
ldc Lcom/oracle/svm/core/annotate/Substitute;
invokevirtual com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.lookupAnnotation:(Ljava/lang/reflect/AnnotatedElement;Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
checkcast com.oracle.svm.core.annotate.Substitute
astore 5
start local 5 15: aload 4
ifnull 16
iconst_1
goto 17
StackMap locals: com.oracle.svm.core.annotate.Delete com.oracle.svm.core.annotate.Substitute
StackMap stack:
16: iconst_0
StackMap locals:
StackMap stack: int
17: aload 5
ifnull 18
iconst_1
goto 19
StackMap locals:
StackMap stack: int
18: iconst_0
StackMap locals: com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor java.lang.Class com.oracle.svm.core.annotate.TargetClass java.lang.Class com.oracle.svm.core.annotate.Delete com.oracle.svm.core.annotate.Substitute
StackMap stack: int int
19: iadd
istore 6
start local 6 20: iload 6
iconst_1
if_icmpgt 21
iconst_1
goto 22
StackMap locals: int
StackMap stack:
21: iconst_0
StackMap locals:
StackMap stack: int
22: ldc "Only one of @Delete or @Substitute can be used: %s"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 1
aastore
invokestatic com.oracle.svm.core.util.UserError.guarantee:(ZLjava/lang/String;[Ljava/lang/Object;)V
23: aload 4
ifnull 26
24: aload 0
aload 3
aload 4
invokevirtual com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.handleDeletedClass:(Ljava/lang/Class;Lcom/oracle/svm/core/annotate/Delete;)V
25: goto 30
StackMap locals:
StackMap stack:
26: aload 5
ifnull 29
27: aload 0
aload 1
aload 3
invokevirtual com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.handleSubstitutionClass:(Ljava/lang/Class;Ljava/lang/Class;)V
28: goto 30
29: StackMap locals:
StackMap stack:
aload 0
aload 1
aload 3
aload 2
invokevirtual com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.handleAliasClass:(Ljava/lang/Class;Ljava/lang/Class;Lcom/oracle/svm/core/annotate/TargetClass;)V
30: StackMap locals:
StackMap stack:
return
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 31 0 this Lcom/oracle/svm/hosted/substitute/AnnotationSubstitutionProcessor;
0 31 1 annotatedClass Ljava/lang/Class<*>;
9 31 2 targetClassAnnotation Lcom/oracle/svm/core/annotate/TargetClass;
10 31 3 originalClass Ljava/lang/Class<*>;
14 31 4 deleteAnnotation Lcom/oracle/svm/core/annotate/Delete;
15 31 5 substituteAnnotation Lcom/oracle/svm/core/annotate/Substitute;
20 31 6 numAnnotations I
Signature: (Ljava/lang/Class<*>;)V
MethodParameters:
Name Flags
annotatedClass
private static java.lang.String substitutionName(java.lang.Class<?>);
descriptor: (Ljava/lang/Class;)Ljava/lang/String;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=1, args_size=1
start local 0 0: new java.lang.StringBuilder
dup
ldc "Target_"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
bipush 46
bipush 95
invokevirtual java.lang.String.replace:(CC)Ljava/lang/String;
bipush 36
bipush 95
invokevirtual java.lang.String.replace:(CC)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 originalClass Ljava/lang/Class<*>;
Signature: (Ljava/lang/Class<*>;)Ljava/lang/String;
MethodParameters:
Name Flags
originalClass
private void handleAliasClass(java.lang.Class<?>, java.lang.Class<?>, com.oracle.svm.core.annotate.TargetClass);
descriptor: (Ljava/lang/Class;Ljava/lang/Class;Lcom/oracle/svm/core/annotate/TargetClass;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=10, args_size=4
start local 0 start local 1 start local 2 start local 3 0: getstatic com.oracle.svm.core.SubstrateOptions.VerifyNamingConventions:Lcom/oracle/svm/core/option/HostedOptionKey;
invokevirtual com.oracle.svm.core.option.HostedOptionKey.getValue:()Ljava/lang/Object;
checkcast java.lang.Boolean
invokevirtual java.lang.Boolean.booleanValue:()Z
ifeq 7
aload 3
invokeinterface com.oracle.svm.core.annotate.TargetClass.classNameProvider:()Ljava/lang/Class;
ldc Lcom/oracle/svm/core/annotate/TargetClass$NoClassNameProvider;
if_acmpne 7
1: aload 2
invokestatic com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.substitutionName:(Ljava/lang/Class;)Ljava/lang/String;
astore 4
start local 4 2: aload 1
invokevirtual java.lang.Class.getSimpleName:()Ljava/lang/String;
astore 5
start local 5 3: aload 5
aload 4
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 4
aload 5
new java.lang.StringBuilder
dup
aload 4
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc "_"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifne 4
iconst_0
goto 5
StackMap locals: java.lang.String java.lang.String
StackMap stack:
4: iconst_1
5: StackMap locals:
StackMap stack: int
ldc "Naming convention violation: %s must be named %s or %s_<suffix>"
iconst_3
anewarray java.lang.Object
dup
iconst_0
aload 1
aastore
dup
iconst_1
aload 4
aastore
dup
iconst_2
aload 4
aastore
6: invokestatic com.oracle.svm.core.util.UserError.guarantee:(ZLjava/lang/String;[Ljava/lang/Object;)V
end local 5 end local 4 7: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.metaAccess:Ljdk/vm/ci/meta/MetaAccessProvider;
aload 2
invokeinterface jdk.vm.ci.meta.MetaAccessProvider.lookupJavaType:(Ljava/lang/Class;)Ljdk/vm/ci/meta/ResolvedJavaType;
astore 4
start local 4 8: aload 0
getfield com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.metaAccess:Ljdk/vm/ci/meta/MetaAccessProvider;
aload 1
invokeinterface jdk.vm.ci.meta.MetaAccessProvider.lookupJavaType:(Ljava/lang/Class;)Ljdk/vm/ci/meta/ResolvedJavaType;
astore 5
start local 5 9: iconst_0
istore 6
start local 6 10: goto 18
11: StackMap locals: jdk.vm.ci.meta.ResolvedJavaType jdk.vm.ci.meta.ResolvedJavaType int
StackMap stack:
aload 0
getfield com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.typeSubstitutions:Ljava/util/Map;
aload 5
invokeinterface java.util.Map.containsKey:(Ljava/lang/Object;)Z
ifeq 12
iconst_0
goto 13
StackMap locals:
StackMap stack:
12: iconst_1
StackMap locals:
StackMap stack: int
13: ldc "Already registered: %s"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 5
aastore
invokestatic com.oracle.svm.core.util.UserError.guarantee:(ZLjava/lang/String;[Ljava/lang/Object;)V
14: aload 0
getfield com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.typeSubstitutions:Ljava/util/Map;
aload 5
aload 4
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
15: aload 4
invokeinterface jdk.vm.ci.meta.ResolvedJavaType.getArrayClass:()Ljdk/vm/ci/meta/ResolvedJavaType;
astore 4
16: aload 5
invokeinterface jdk.vm.ci.meta.ResolvedJavaType.getArrayClass:()Ljdk/vm/ci/meta/ResolvedJavaType;
astore 5
17: iinc 6 1
StackMap locals:
StackMap stack:
18: iload 6
bipush 8
if_icmplt 11
end local 6 19: aload 1
invokevirtual java.lang.Class.getDeclaredMethods:()[Ljava/lang/reflect/Method;
dup
astore 9
arraylength
istore 8
iconst_0
istore 7
goto 23
StackMap locals: com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor java.lang.Class java.lang.Class com.oracle.svm.core.annotate.TargetClass jdk.vm.ci.meta.ResolvedJavaType jdk.vm.ci.meta.ResolvedJavaType top int int java.lang.reflect.Method[]
StackMap stack:
20: aload 9
iload 7
aaload
astore 6
start local 6 21: aload 0
aload 6
aload 2
invokevirtual com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.handleMethodInAliasClass:(Ljava/lang/reflect/Executable;Ljava/lang/Class;)V
end local 6 22: iinc 7 1
StackMap locals:
StackMap stack:
23: iload 7
iload 8
if_icmplt 20
24: aload 1
invokevirtual java.lang.Class.getDeclaredConstructors:()[Ljava/lang/reflect/Constructor;
dup
astore 9
arraylength
istore 8
iconst_0
istore 7
goto 28
StackMap locals: com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor java.lang.Class java.lang.Class com.oracle.svm.core.annotate.TargetClass jdk.vm.ci.meta.ResolvedJavaType jdk.vm.ci.meta.ResolvedJavaType top int int java.lang.reflect.Constructor[]
StackMap stack:
25: aload 9
iload 7
aaload
astore 6
start local 6 26: aload 0
aload 6
aload 2
invokevirtual com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.handleMethodInAliasClass:(Ljava/lang/reflect/Executable;Ljava/lang/Class;)V
end local 6 27: iinc 7 1
StackMap locals:
StackMap stack:
28: iload 7
iload 8
if_icmplt 25
29: aload 1
invokevirtual java.lang.Class.getDeclaredFields:()[Ljava/lang/reflect/Field;
dup
astore 9
arraylength
istore 8
iconst_0
istore 7
goto 33
StackMap locals: com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor java.lang.Class java.lang.Class com.oracle.svm.core.annotate.TargetClass jdk.vm.ci.meta.ResolvedJavaType jdk.vm.ci.meta.ResolvedJavaType top int int java.lang.reflect.Field[]
StackMap stack:
30: aload 9
iload 7
aaload
astore 6
start local 6 31: aload 0
aload 6
aload 2
invokevirtual com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.handleFieldInAliasClass:(Ljava/lang/reflect/Field;Ljava/lang/Class;)V
end local 6 32: iinc 7 1
StackMap locals:
StackMap stack:
33: iload 7
iload 8
if_icmplt 30
34: return
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 35 0 this Lcom/oracle/svm/hosted/substitute/AnnotationSubstitutionProcessor;
0 35 1 annotatedClass Ljava/lang/Class<*>;
0 35 2 originalClass Ljava/lang/Class<*>;
0 35 3 targetClassAnnotation Lcom/oracle/svm/core/annotate/TargetClass;
2 7 4 expectedName Ljava/lang/String;
3 7 5 actualName Ljava/lang/String;
8 35 4 original Ljdk/vm/ci/meta/ResolvedJavaType;
9 35 5 annotated Ljdk/vm/ci/meta/ResolvedJavaType;
10 19 6 i I
21 22 6 annotatedMethod Ljava/lang/reflect/Method;
26 27 6 annotatedMethod Ljava/lang/reflect/Constructor<*>;
31 32 6 annotatedField Ljava/lang/reflect/Field;
Signature: (Ljava/lang/Class<*>;Ljava/lang/Class<*>;Lcom/oracle/svm/core/annotate/TargetClass;)V
MethodParameters:
Name Flags
annotatedClass
originalClass
targetClassAnnotation
private void handleMethodInAliasClass(java.lang.reflect.Executable, java.lang.Class<?>);
descriptor: (Ljava/lang/reflect/Executable;Ljava/lang/Class;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=11, args_size=3
start local 0 start local 1 start local 2 0: ldc Lorg/graalvm/nativeimage/Platform;
invokestatic org.graalvm.nativeimage.ImageSingletons.lookup:(Ljava/lang/Class;)Ljava/lang/Object;
checkcast org.graalvm.nativeimage.Platform
aload 0
aload 1
ldc Lorg/graalvm/nativeimage/Platforms;
invokevirtual com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.lookupAnnotation:(Ljava/lang/reflect/AnnotatedElement;Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
checkcast org.graalvm.nativeimage.Platforms
invokestatic com.oracle.svm.hosted.NativeImageGenerator.includedIn:(Lorg/graalvm/nativeimage/Platform;Lorg/graalvm/nativeimage/Platforms;)Z
ifne 2
1: return
2: StackMap locals:
StackMap stack:
aload 0
aload 1
ldc Lcom/oracle/svm/core/annotate/Delete;
invokevirtual com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.lookupAnnotation:(Ljava/lang/reflect/AnnotatedElement;Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
checkcast com.oracle.svm.core.annotate.Delete
astore 3
start local 3 3: aload 0
aload 1
ldc Lcom/oracle/svm/core/annotate/Substitute;
invokevirtual com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.lookupAnnotation:(Ljava/lang/reflect/AnnotatedElement;Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
checkcast com.oracle.svm.core.annotate.Substitute
astore 4
start local 4 4: aload 0
aload 1
ldc Lcom/oracle/svm/core/annotate/AnnotateOriginal;
invokevirtual com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.lookupAnnotation:(Ljava/lang/reflect/AnnotatedElement;Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
checkcast com.oracle.svm.core.annotate.AnnotateOriginal
astore 5
start local 5 5: aload 0
aload 1
ldc Lcom/oracle/svm/core/annotate/Alias;
invokevirtual com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.lookupAnnotation:(Ljava/lang/reflect/AnnotatedElement;Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
checkcast com.oracle.svm.core.annotate.Alias
astore 6
start local 6 6: aload 3
ifnull 7
iconst_1
goto 8
StackMap locals: com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor java.lang.reflect.Executable java.lang.Class com.oracle.svm.core.annotate.Delete com.oracle.svm.core.annotate.Substitute com.oracle.svm.core.annotate.AnnotateOriginal com.oracle.svm.core.annotate.Alias
StackMap stack:
7: iconst_0
StackMap locals:
StackMap stack: int
8: aload 4
ifnull 9
iconst_1
goto 10
StackMap locals:
StackMap stack: int
9: iconst_0
StackMap locals: com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor java.lang.reflect.Executable java.lang.Class com.oracle.svm.core.annotate.Delete com.oracle.svm.core.annotate.Substitute com.oracle.svm.core.annotate.AnnotateOriginal com.oracle.svm.core.annotate.Alias
StackMap stack: int int
10: iadd
aload 5
ifnull 11
iconst_1
goto 12
StackMap locals:
StackMap stack: int
11: iconst_0
StackMap locals: com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor java.lang.reflect.Executable java.lang.Class com.oracle.svm.core.annotate.Delete com.oracle.svm.core.annotate.Substitute com.oracle.svm.core.annotate.AnnotateOriginal com.oracle.svm.core.annotate.Alias
StackMap stack: int int
12: iadd
aload 6
ifnull 13
iconst_1
goto 14
StackMap locals:
StackMap stack: int
13: iconst_0
StackMap locals: com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor java.lang.reflect.Executable java.lang.Class com.oracle.svm.core.annotate.Delete com.oracle.svm.core.annotate.Substitute com.oracle.svm.core.annotate.AnnotateOriginal com.oracle.svm.core.annotate.Alias
StackMap stack: int int
14: iadd
istore 7
start local 7 15: iload 7
ifne 18
16: aload 1
instanceof java.lang.reflect.Constructor
ldc "One of @Delete, @Substitute, @AnnotateOriginal, or @Alias must be used: %s"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 1
aastore
invokestatic com.oracle.svm.core.util.UserError.guarantee:(ZLjava/lang/String;[Ljava/lang/Object;)V
17: return
18: StackMap locals: int
StackMap stack:
iload 7
iconst_1
if_icmpne 19
iconst_1
goto 20
StackMap locals:
StackMap stack:
19: iconst_0
StackMap locals:
StackMap stack: int
20: ldc "Only one of @Delete, @Substitute, @AnnotateOriginal, or @Alias can be used: %s"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 1
aastore
invokestatic com.oracle.svm.core.util.UserError.guarantee:(ZLjava/lang/String;[Ljava/lang/Object;)V
21: aload 0
getfield com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.metaAccess:Ljdk/vm/ci/meta/MetaAccessProvider;
aload 1
invokeinterface jdk.vm.ci.meta.MetaAccessProvider.lookupJavaMethod:(Ljava/lang/reflect/Executable;)Ljdk/vm/ci/meta/ResolvedJavaMethod;
astore 8
start local 8 22: aload 0
aload 1
aload 2
invokevirtual com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.findOriginalMethod:(Ljava/lang/reflect/Executable;Ljava/lang/Class;)Ljdk/vm/ci/meta/ResolvedJavaMethod;
astore 9
start local 9 23: aload 9
ifnull 39
24: aload 3
ifnull 27
25: aload 0
aload 8
aload 9
aload 3
invokevirtual com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.registerAsDeleted:(Ljdk/vm/ci/meta/ResolvedJavaMethod;Ljdk/vm/ci/meta/ResolvedJavaMethod;Lcom/oracle/svm/core/annotate/Delete;)V
26: goto 39
StackMap locals: jdk.vm.ci.meta.ResolvedJavaMethod jdk.vm.ci.meta.ResolvedJavaMethod
StackMap stack:
27: aload 4
ifnull 33
28: new com.oracle.svm.hosted.substitute.SubstitutionMethod
dup
aload 9
aload 8
invokespecial com.oracle.svm.hosted.substitute.SubstitutionMethod.<init>:(Ljdk/vm/ci/meta/ResolvedJavaMethod;Ljdk/vm/ci/meta/ResolvedJavaMethod;)V
astore 10
start local 10 29: aload 4
invokeinterface com.oracle.svm.core.annotate.Substitute.polymorphicSignature:()Z
ifeq 31
30: aload 0
getfield com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.polymorphicMethodSubstitutions:Ljava/util/Map;
aload 8
aload 9
aload 10
invokestatic com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.register:(Ljava/util/Map;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
31: StackMap locals: com.oracle.svm.hosted.substitute.SubstitutionMethod
StackMap stack:
aload 0
getfield com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.methodSubstitutions:Ljava/util/Map;
aload 8
aload 9
aload 10
invokestatic com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.register:(Ljava/util/Map;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
end local 10 32: goto 39
StackMap locals:
StackMap stack:
33: aload 5
ifnull 37
34: new com.oracle.svm.hosted.substitute.AnnotatedMethod
dup
aload 9
aload 8
invokespecial com.oracle.svm.hosted.substitute.AnnotatedMethod.<init>:(Ljdk/vm/ci/meta/ResolvedJavaMethod;Ljdk/vm/ci/meta/ResolvedJavaMethod;)V
astore 10
start local 10 35: aload 0
getfield com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.methodSubstitutions:Ljava/util/Map;
aload 8
aload 9
aload 10
invokestatic com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.register:(Ljava/util/Map;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
end local 10 36: goto 39
StackMap locals:
StackMap stack:
37: aload 6
ifnull 39
38: aload 0
getfield com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.methodSubstitutions:Ljava/util/Map;
aload 8
aload 9
aload 9
invokestatic com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.register:(Ljava/util/Map;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
39: StackMap locals:
StackMap stack:
return
end local 9 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 40 0 this Lcom/oracle/svm/hosted/substitute/AnnotationSubstitutionProcessor;
0 40 1 annotatedMethod Ljava/lang/reflect/Executable;
0 40 2 originalClass Ljava/lang/Class<*>;
3 40 3 deleteAnnotation Lcom/oracle/svm/core/annotate/Delete;
4 40 4 substituteAnnotation Lcom/oracle/svm/core/annotate/Substitute;
5 40 5 annotateOriginalAnnotation Lcom/oracle/svm/core/annotate/AnnotateOriginal;
6 40 6 aliasAnnotation Lcom/oracle/svm/core/annotate/Alias;
15 40 7 numAnnotations I
22 40 8 annotated Ljdk/vm/ci/meta/ResolvedJavaMethod;
23 40 9 original Ljdk/vm/ci/meta/ResolvedJavaMethod;
29 32 10 substitution Lcom/oracle/svm/hosted/substitute/SubstitutionMethod;
35 36 10 substitution Lcom/oracle/svm/hosted/substitute/AnnotatedMethod;
Signature: (Ljava/lang/reflect/Executable;Ljava/lang/Class<*>;)V
MethodParameters:
Name Flags
annotatedMethod
originalClass
private void handleFieldInAliasClass(java.lang.reflect.Field, java.lang.Class<?>);
descriptor: (Ljava/lang/reflect/Field;Ljava/lang/Class;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=13, args_size=3
start local 0 start local 1 start local 2 0: ldc Lorg/graalvm/nativeimage/Platform;
invokestatic org.graalvm.nativeimage.ImageSingletons.lookup:(Ljava/lang/Class;)Ljava/lang/Object;
checkcast org.graalvm.nativeimage.Platform
aload 0
aload 1
ldc Lorg/graalvm/nativeimage/Platforms;
invokevirtual com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.lookupAnnotation:(Ljava/lang/reflect/AnnotatedElement;Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
checkcast org.graalvm.nativeimage.Platforms
invokestatic com.oracle.svm.hosted.NativeImageGenerator.includedIn:(Lorg/graalvm/nativeimage/Platform;Lorg/graalvm/nativeimage/Platforms;)Z
ifne 2
1: return
2: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.metaAccess:Ljdk/vm/ci/meta/MetaAccessProvider;
aload 1
invokeinterface jdk.vm.ci.meta.MetaAccessProvider.lookupJavaField:(Ljava/lang/reflect/Field;)Ljdk/vm/ci/meta/ResolvedJavaField;
astore 3
start local 3 3: aload 0
aload 1
ldc Lcom/oracle/svm/core/annotate/Delete;
invokevirtual com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.lookupAnnotation:(Ljava/lang/reflect/AnnotatedElement;Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
checkcast com.oracle.svm.core.annotate.Delete
astore 4
start local 4 4: aload 0
aload 1
ldc Lcom/oracle/svm/core/annotate/Alias;
invokevirtual com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.lookupAnnotation:(Ljava/lang/reflect/AnnotatedElement;Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
checkcast com.oracle.svm.core.annotate.Alias
astore 5
start local 5 5: aload 0
aload 1
ldc Lcom/oracle/svm/core/annotate/Inject;
invokevirtual com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.lookupAnnotation:(Ljava/lang/reflect/AnnotatedElement;Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
checkcast com.oracle.svm.core.annotate.Inject
astore 6
start local 6 6: aload 4
ifnull 7
iconst_1
goto 8
StackMap locals: com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor java.lang.reflect.Field java.lang.Class jdk.vm.ci.meta.ResolvedJavaField com.oracle.svm.core.annotate.Delete com.oracle.svm.core.annotate.Alias com.oracle.svm.core.annotate.Inject
StackMap stack:
7: iconst_0
StackMap locals:
StackMap stack: int
8: aload 5
ifnull 9
iconst_1
goto 10
StackMap locals:
StackMap stack: int
9: iconst_0
StackMap locals: com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor java.lang.reflect.Field java.lang.Class jdk.vm.ci.meta.ResolvedJavaField com.oracle.svm.core.annotate.Delete com.oracle.svm.core.annotate.Alias com.oracle.svm.core.annotate.Inject
StackMap stack: int int
10: iadd
aload 6
ifnull 11
iconst_1
goto 12
StackMap locals:
StackMap stack: int
11: iconst_0
StackMap locals: com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor java.lang.reflect.Field java.lang.Class jdk.vm.ci.meta.ResolvedJavaField com.oracle.svm.core.annotate.Delete com.oracle.svm.core.annotate.Alias com.oracle.svm.core.annotate.Inject
StackMap stack: int int
12: iadd
istore 7
start local 7 13: iload 7
ifne 19
14: aload 1
invokevirtual java.lang.reflect.Field.getName:()Ljava/lang/String;
ldc "$assertionsDisabled"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ldc "One of @Delete, @Alias, or @Inject must be used: %s"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 1
aastore
invokestatic com.oracle.svm.core.util.UserError.guarantee:(ZLjava/lang/String;[Ljava/lang/Object;)V
15: aload 0
aload 1
aload 2
iconst_1
invokevirtual com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.findOriginalField:(Ljava/lang/reflect/Field;Ljava/lang/Class;Z)Ljdk/vm/ci/meta/ResolvedJavaField;
astore 8
start local 8 16: aload 8
ifnull 18
17: aload 0
getfield com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.fieldSubstitutions:Ljava/util/Map;
aload 3
aconst_null
aload 8
invokestatic com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.register:(Ljava/util/Map;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
18: StackMap locals: int jdk.vm.ci.meta.ResolvedJavaField
StackMap stack:
return
end local 8 19: StackMap locals:
StackMap stack:
iload 7
iconst_1
if_icmpne 20
iconst_1
goto 21
StackMap locals:
StackMap stack:
20: iconst_0
StackMap locals:
StackMap stack: int
21: ldc "Only one of @Delete, @Alias, or @Inject can be used: %s"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 1
aastore
invokestatic com.oracle.svm.core.util.UserError.guarantee:(ZLjava/lang/String;[Ljava/lang/Object;)V
22: aload 6
ifnull 37
23: aload 3
invokeinterface jdk.vm.ci.meta.ResolvedJavaField.isStatic:()Z
ifeq 24
iconst_0
goto 25
StackMap locals:
StackMap stack:
24: iconst_1
StackMap locals:
StackMap stack: int
25: ldc "@Inject field must not be static: %s"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 3
aastore
invokestatic com.oracle.svm.core.util.UserError.guarantee:(ZLjava/lang/String;[Ljava/lang/Object;)V
26: aload 0
aload 2
aload 3
aload 3
aload 1
invokevirtual com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.fieldValueRecomputation:(Ljava/lang/Class;Ljdk/vm/ci/meta/ResolvedJavaField;Ljdk/vm/ci/meta/ResolvedJavaField;Ljava/lang/reflect/Field;)Ljdk/vm/ci/meta/ResolvedJavaField;
astore 8
start local 8 27: aload 0
getfield com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.fieldSubstitutions:Ljava/util/Map;
aload 3
aconst_null
aload 8
invokestatic com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.register:(Ljava/util/Map;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
28: aload 0
getfield com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.metaAccess:Ljdk/vm/ci/meta/MetaAccessProvider;
aload 2
invokeinterface jdk.vm.ci.meta.MetaAccessProvider.lookupJavaType:(Ljava/lang/Class;)Ljdk/vm/ci/meta/ResolvedJavaType;
astore 9
start local 9 29: aload 0
getfield com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.typeSubstitutions:Ljava/util/Map;
aload 9
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
instanceof com.oracle.svm.hosted.substitute.InjectedFieldsType
ifeq 33
30: aload 0
getfield com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.typeSubstitutions:Ljava/util/Map;
aload 9
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast com.oracle.svm.hosted.substitute.InjectedFieldsType
astore 10
start local 10 31: aload 0
getfield com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.typeSubstitutions:Ljava/util/Map;
aload 3
invokeinterface jdk.vm.ci.meta.ResolvedJavaField.getDeclaringClass:()Ljdk/vm/ci/meta/ResolvedJavaType;
aload 9
aload 10
invokestatic com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.register:(Ljava/util/Map;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
32: goto 35
end local 10 33: StackMap locals: jdk.vm.ci.meta.ResolvedJavaField jdk.vm.ci.meta.ResolvedJavaType
StackMap stack:
new com.oracle.svm.hosted.substitute.InjectedFieldsType
dup
aload 9
invokespecial com.oracle.svm.hosted.substitute.InjectedFieldsType.<init>:(Ljdk/vm/ci/meta/ResolvedJavaType;)V
astore 10
start local 10 34: aload 0
getfield com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.typeSubstitutions:Ljava/util/Map;
aload 3
invokeinterface jdk.vm.ci.meta.ResolvedJavaField.getDeclaringClass:()Ljdk/vm/ci/meta/ResolvedJavaType;
aload 9
aload 10
invokestatic com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.register:(Ljava/util/Map;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
35: StackMap locals: com.oracle.svm.hosted.substitute.InjectedFieldsType
StackMap stack:
aload 10
aload 8
invokevirtual com.oracle.svm.hosted.substitute.InjectedFieldsType.addInjectedField:(Ljdk/vm/ci/meta/ResolvedJavaField;)V
end local 10 end local 9 end local 8 36: goto 65
37: StackMap locals:
StackMap stack:
aload 0
aload 1
aload 2
iconst_0
invokevirtual com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.findOriginalField:(Ljava/lang/reflect/Field;Ljava/lang/Class;Z)Ljdk/vm/ci/meta/ResolvedJavaField;
astore 8
start local 8 38: aload 8
ifnonnull 40
39: return
40: StackMap locals: jdk.vm.ci.meta.ResolvedJavaField
StackMap stack:
aload 3
invokeinterface jdk.vm.ci.meta.ResolvedJavaField.isStatic:()Z
aload 8
invokeinterface jdk.vm.ci.meta.ResolvedJavaField.isStatic:()Z
if_icmpne 41
iconst_1
goto 42
StackMap locals:
StackMap stack:
41: iconst_0
StackMap locals:
StackMap stack: int
42: ldc "Static modifier mismatch: %s, %s"
iconst_2
anewarray java.lang.Object
dup
iconst_0
aload 3
aastore
dup
iconst_1
aload 8
aastore
invokestatic com.oracle.svm.core.util.UserError.guarantee:(ZLjava/lang/String;[Ljava/lang/Object;)V
43: aload 3
invokeinterface jdk.vm.ci.meta.ResolvedJavaField.getJavaKind:()Ljdk/vm/ci/meta/JavaKind;
aload 8
invokeinterface jdk.vm.ci.meta.ResolvedJavaField.getJavaKind:()Ljdk/vm/ci/meta/JavaKind;
if_acmpne 44
iconst_1
goto 45
StackMap locals:
StackMap stack:
44: iconst_0
StackMap locals:
StackMap stack: int
45: ldc "Type mismatch: %s, %s"
iconst_2
anewarray java.lang.Object
dup
iconst_0
aload 3
aastore
dup
iconst_1
aload 8
aastore
invokestatic com.oracle.svm.core.util.UserError.guarantee:(ZLjava/lang/String;[Ljava/lang/Object;)V
46: aload 0
aload 1
ldc Lcom/oracle/svm/core/annotate/RecomputeFieldValue;
invokevirtual com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.lookupAnnotation:(Ljava/lang/reflect/AnnotatedElement;Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
checkcast com.oracle.svm.core.annotate.RecomputeFieldValue
astore 9
start local 9 47: aload 1
invokevirtual java.lang.reflect.Field.getModifiers:()I
invokestatic java.lang.reflect.Modifier.isStatic:(I)Z
ifeq 49
aload 9
ifnull 48
aload 9
invokeinterface com.oracle.svm.core.annotate.RecomputeFieldValue.kind:()Lcom/oracle/svm/core/annotate/RecomputeFieldValue$Kind;
getstatic com.oracle.svm.core.annotate.RecomputeFieldValue$Kind.FromAlias:Lcom/oracle/svm/core/annotate/RecomputeFieldValue$Kind;
if_acmpeq 49
48: StackMap locals: com.oracle.svm.core.annotate.RecomputeFieldValue
StackMap stack:
aload 1
invokestatic com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.hasDefaultValue:(Ljava/lang/reflect/Field;)Z
ldc "The value assigned to a static @Alias field is ignored unless @RecomputeFieldValue with kind=FromAlias is used: %s"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 3
aastore
invokestatic com.oracle.svm.core.util.UserError.guarantee:(ZLjava/lang/String;[Ljava/lang/Object;)V
49: StackMap locals:
StackMap stack:
aload 1
invokevirtual java.lang.reflect.Field.getModifiers:()I
invokestatic java.lang.reflect.Modifier.isFinal:(I)Z
ifeq 50
iconst_0
goto 51
StackMap locals:
StackMap stack:
50: iconst_1
StackMap locals:
StackMap stack: int
51: ldc "The `final` modifier for the @Alias field is ignored and therefore misleading: %s"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 3
aastore
invokestatic com.oracle.svm.core.util.UserError.guarantee:(ZLjava/lang/String;[Ljava/lang/Object;)V
52: aload 4
ifnull 55
53: aload 0
aload 3
aload 8
aload 4
invokevirtual com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.registerAsDeleted:(Ljdk/vm/ci/meta/ResolvedJavaField;Ljdk/vm/ci/meta/ResolvedJavaField;Lcom/oracle/svm/core/annotate/Delete;)V
54: goto 65
55: StackMap locals:
StackMap stack:
aload 0
aload 2
aload 8
aload 3
aload 1
invokevirtual com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.fieldValueRecomputation:(Ljava/lang/Class;Ljdk/vm/ci/meta/ResolvedJavaField;Ljdk/vm/ci/meta/ResolvedJavaField;Ljava/lang/reflect/Field;)Ljdk/vm/ci/meta/ResolvedJavaField;
astore 10
start local 10 56: aload 0
getfield com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.fieldSubstitutions:Ljava/util/Map;
aload 8
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast jdk.vm.ci.meta.ResolvedJavaField
astore 11
start local 11 57: aload 10
astore 12
start local 12 58: aload 11
ifnull 64
59: aload 10
aload 8
invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
ifeq 62
60: aload 11
astore 12
61: goto 64
StackMap locals: jdk.vm.ci.meta.ResolvedJavaField jdk.vm.ci.meta.ResolvedJavaField jdk.vm.ci.meta.ResolvedJavaField
StackMap stack:
62: aload 11
aload 8
invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
ifeq 64
63: aload 0
getfield com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.fieldSubstitutions:Ljava/util/Map;
aload 11
aload 10
invokedynamic apply(Ljdk/vm/ci/meta/ResolvedJavaField;Ljdk/vm/ci/meta/ResolvedJavaField;)Ljava/util/function/BiFunction;
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;)Ljava/lang/Object;
com/oracle/svm/hosted/substitute/AnnotationSubstitutionProcessor.lambda$1(Ljdk/vm/ci/meta/ResolvedJavaField;Ljdk/vm/ci/meta/ResolvedJavaField;Ljdk/vm/ci/meta/ResolvedJavaField;Ljdk/vm/ci/meta/ResolvedJavaField;)Ljdk/vm/ci/meta/ResolvedJavaField; (6)
(Ljdk/vm/ci/meta/ResolvedJavaField;Ljdk/vm/ci/meta/ResolvedJavaField;)Ljdk/vm/ci/meta/ResolvedJavaField;
invokeinterface java.util.Map.replaceAll:(Ljava/util/function/BiFunction;)V
64: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.fieldSubstitutions:Ljava/util/Map;
aload 3
aload 8
aload 12
invokestatic com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.register:(Ljava/util/Map;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
end local 12 end local 11 end local 10 end local 9 end local 8 65: StackMap locals: com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor java.lang.reflect.Field java.lang.Class jdk.vm.ci.meta.ResolvedJavaField com.oracle.svm.core.annotate.Delete com.oracle.svm.core.annotate.Alias com.oracle.svm.core.annotate.Inject int
StackMap stack:
return
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 66 0 this Lcom/oracle/svm/hosted/substitute/AnnotationSubstitutionProcessor;
0 66 1 annotatedField Ljava/lang/reflect/Field;
0 66 2 originalClass Ljava/lang/Class<*>;
3 66 3 annotated Ljdk/vm/ci/meta/ResolvedJavaField;
4 66 4 deleteAnnotation Lcom/oracle/svm/core/annotate/Delete;
5 66 5 aliasAnnotation Lcom/oracle/svm/core/annotate/Alias;
6 66 6 injectAnnotation Lcom/oracle/svm/core/annotate/Inject;
13 66 7 numAnnotations I
16 19 8 original Ljdk/vm/ci/meta/ResolvedJavaField;
27 36 8 injected Ljdk/vm/ci/meta/ResolvedJavaField;
29 36 9 original Ljdk/vm/ci/meta/ResolvedJavaType;
31 33 10 substitution Lcom/oracle/svm/hosted/substitute/InjectedFieldsType;
34 36 10 substitution Lcom/oracle/svm/hosted/substitute/InjectedFieldsType;
38 65 8 original Ljdk/vm/ci/meta/ResolvedJavaField;
47 65 9 recomputeAnnotation Lcom/oracle/svm/core/annotate/RecomputeFieldValue;
56 65 10 computedAlias Ljdk/vm/ci/meta/ResolvedJavaField;
57 65 11 existingAlias Ljdk/vm/ci/meta/ResolvedJavaField;
58 65 12 alias Ljdk/vm/ci/meta/ResolvedJavaField;
Signature: (Ljava/lang/reflect/Field;Ljava/lang/Class<*>;)V
MethodParameters:
Name Flags
annotatedField
originalClass
private static boolean hasDefaultValue(java.lang.reflect.Field);
descriptor: (Ljava/lang/reflect/Field;)Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=2, args_size=1
start local 0 0: aload 0
iconst_1
invokevirtual java.lang.reflect.Field.setAccessible:(Z)V
1: aload 0
invokevirtual java.lang.reflect.Field.getType:()Ljava/lang/Class;
invokevirtual java.lang.Class.isPrimitive:()Z
ifne 5
2: aload 0
aconst_null
invokevirtual java.lang.reflect.Field.get:(Ljava/lang/Object;)Ljava/lang/Object;
ifnonnull 3
iconst_1
ireturn
StackMap locals:
StackMap stack:
3: iconst_0
4: ireturn
5: StackMap locals:
StackMap stack:
aload 0
invokevirtual java.lang.reflect.Field.getType:()Ljava/lang/Class;
getstatic java.lang.Float.TYPE:Ljava/lang/Class;
if_acmpeq 6
aload 0
invokevirtual java.lang.reflect.Field.getType:()Ljava/lang/Class;
getstatic java.lang.Double.TYPE:Ljava/lang/Class;
if_acmpne 9
6: StackMap locals:
StackMap stack:
aload 0
aconst_null
invokevirtual java.lang.reflect.Field.getDouble:(Ljava/lang/Object;)D
dconst_0
dcmpl
ifne 7
iconst_1
ireturn
StackMap locals:
StackMap stack:
7: iconst_0
8: ireturn
9: StackMap locals:
StackMap stack:
aload 0
invokevirtual java.lang.reflect.Field.getType:()Ljava/lang/Class;
getstatic java.lang.Boolean.TYPE:Ljava/lang/Class;
if_acmpne 13
10: aload 0
aconst_null
invokevirtual java.lang.reflect.Field.getBoolean:(Ljava/lang/Object;)Z
ifeq 11
iconst_0
ireturn
StackMap locals:
StackMap stack:
11: iconst_1
12: ireturn
13: StackMap locals:
StackMap stack:
aload 0
aconst_null
invokevirtual java.lang.reflect.Field.getLong:(Ljava/lang/Object;)J
lconst_0
lcmp
ifne 14
iconst_1
ireturn
StackMap locals:
StackMap stack:
14: iconst_0
15: ireturn
16: StackMap locals:
StackMap stack: java.lang.ReflectiveOperationException
astore 1
start local 1 17: aload 1
invokestatic com.oracle.svm.core.util.VMError.shouldNotReachHere:(Ljava/lang/Throwable;)Ljava/lang/RuntimeException;
athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 18 0 annotatedField Ljava/lang/reflect/Field;
17 18 1 ex Ljava/lang/ReflectiveOperationException;
Exception table:
from to target type
0 4 16 Class java.lang.ReflectiveOperationException
5 8 16 Class java.lang.ReflectiveOperationException
9 12 16 Class java.lang.ReflectiveOperationException
13 15 16 Class java.lang.ReflectiveOperationException
MethodParameters:
Name Flags
annotatedField
private void handleDeletedClass(java.lang.Class<?>, com.oracle.svm.core.annotate.Delete);
descriptor: (Ljava/lang/Class;Lcom/oracle/svm/core/annotate/Delete;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=8, args_size=3
start local 0 start local 1 start local 2 0: getstatic com.oracle.svm.hosted.NativeImageOptions.ReportUnsupportedElementsAtRuntime:Lcom/oracle/svm/core/option/HostedOptionKey;
invokevirtual com.oracle.svm.core.option.HostedOptionKey.getValue:()Ljava/lang/Object;
checkcast java.lang.Boolean
invokevirtual java.lang.Boolean.booleanValue:()Z
ifeq 20
1: aload 1
invokevirtual java.lang.Class.getDeclaredMethods:()[Ljava/lang/reflect/Method;
dup
astore 6
arraylength
istore 5
iconst_0
istore 4
goto 6
StackMap locals: com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor java.lang.Class com.oracle.svm.core.annotate.Delete top int int java.lang.reflect.Executable[]
StackMap stack:
2: aload 6
iload 4
aaload
astore 3
start local 3 3: aload 0
getfield com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.metaAccess:Ljdk/vm/ci/meta/MetaAccessProvider;
aload 3
invokeinterface jdk.vm.ci.meta.MetaAccessProvider.lookupJavaMethod:(Ljava/lang/reflect/Executable;)Ljdk/vm/ci/meta/ResolvedJavaMethod;
astore 7
start local 7 4: aload 0
aconst_null
aload 7
aload 2
invokevirtual com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.registerAsDeleted:(Ljdk/vm/ci/meta/ResolvedJavaMethod;Ljdk/vm/ci/meta/ResolvedJavaMethod;Lcom/oracle/svm/core/annotate/Delete;)V
end local 7 end local 3 5: iinc 4 1
StackMap locals:
StackMap stack:
6: iload 4
iload 5
if_icmplt 2
7: aload 1
invokevirtual java.lang.Class.getDeclaredConstructors:()[Ljava/lang/reflect/Constructor;
dup
astore 6
arraylength
istore 5
iconst_0
istore 4
goto 12
StackMap locals:
StackMap stack:
8: aload 6
iload 4
aaload
astore 3
start local 3 9: aload 0
getfield com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.metaAccess:Ljdk/vm/ci/meta/MetaAccessProvider;
aload 3
invokeinterface jdk.vm.ci.meta.MetaAccessProvider.lookupJavaMethod:(Ljava/lang/reflect/Executable;)Ljdk/vm/ci/meta/ResolvedJavaMethod;
astore 7
start local 7 10: aload 0
aconst_null
aload 7
aload 2
invokevirtual com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.registerAsDeleted:(Ljdk/vm/ci/meta/ResolvedJavaMethod;Ljdk/vm/ci/meta/ResolvedJavaMethod;Lcom/oracle/svm/core/annotate/Delete;)V
end local 7 end local 3 11: iinc 4 1
StackMap locals:
StackMap stack:
12: iload 4
iload 5
if_icmplt 8
13: aload 1
invokevirtual java.lang.Class.getDeclaredFields:()[Ljava/lang/reflect/Field;
dup
astore 6
arraylength
istore 5
iconst_0
istore 4
goto 18
StackMap locals: com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor java.lang.Class com.oracle.svm.core.annotate.Delete top int int java.lang.reflect.Field[]
StackMap stack:
14: aload 6
iload 4
aaload
astore 3
start local 3 15: aload 0
getfield com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.metaAccess:Ljdk/vm/ci/meta/MetaAccessProvider;
aload 3
invokeinterface jdk.vm.ci.meta.MetaAccessProvider.lookupJavaField:(Ljava/lang/reflect/Field;)Ljdk/vm/ci/meta/ResolvedJavaField;
astore 7
start local 7 16: aload 0
aconst_null
aload 7
aload 2
invokevirtual com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.registerAsDeleted:(Ljdk/vm/ci/meta/ResolvedJavaField;Ljdk/vm/ci/meta/ResolvedJavaField;Lcom/oracle/svm/core/annotate/Delete;)V
end local 7 end local 3 17: iinc 4 1
StackMap locals:
StackMap stack:
18: iload 4
iload 5
if_icmplt 14
19: goto 21
20: StackMap locals: com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor java.lang.Class com.oracle.svm.core.annotate.Delete
StackMap stack:
aload 0
getfield com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.deleteAnnotations:Ljava/util/Map;
aload 0
getfield com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.metaAccess:Ljdk/vm/ci/meta/MetaAccessProvider;
aload 1
invokeinterface jdk.vm.ci.meta.MetaAccessProvider.lookupJavaType:(Ljava/lang/Class;)Ljdk/vm/ci/meta/ResolvedJavaType;
aload 2
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
21: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 22 0 this Lcom/oracle/svm/hosted/substitute/AnnotationSubstitutionProcessor;
0 22 1 originalClass Ljava/lang/Class<*>;
0 22 2 deleteAnnotation Lcom/oracle/svm/core/annotate/Delete;
3 5 3 m Ljava/lang/reflect/Executable;
4 5 7 method Ljdk/vm/ci/meta/ResolvedJavaMethod;
9 11 3 m Ljava/lang/reflect/Executable;
10 11 7 method Ljdk/vm/ci/meta/ResolvedJavaMethod;
15 17 3 f Ljava/lang/reflect/Field;
16 17 7 field Ljdk/vm/ci/meta/ResolvedJavaField;
Signature: (Ljava/lang/Class<*>;Lcom/oracle/svm/core/annotate/Delete;)V
MethodParameters:
Name Flags
originalClass
deleteAnnotation
private void registerAsDeleted(jdk.vm.ci.meta.ResolvedJavaMethod, jdk.vm.ci.meta.ResolvedJavaMethod, com.oracle.svm.core.annotate.Delete);
descriptor: (Ljdk/vm/ci/meta/ResolvedJavaMethod;Ljdk/vm/ci/meta/ResolvedJavaMethod;Lcom/oracle/svm/core/annotate/Delete;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=7, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: getstatic com.oracle.svm.hosted.NativeImageOptions.ReportUnsupportedElementsAtRuntime:Lcom/oracle/svm/core/option/HostedOptionKey;
invokevirtual com.oracle.svm.core.option.HostedOptionKey.getValue:()Ljava/lang/Object;
checkcast java.lang.Boolean
invokevirtual java.lang.Boolean.booleanValue:()Z
ifeq 3
1: aload 0
getfield com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.methodSubstitutions:Ljava/util/Map;
aload 1
aload 2
new com.oracle.svm.hosted.substitute.DeletedMethod
dup
aload 2
aload 3
invokespecial com.oracle.svm.hosted.substitute.DeletedMethod.<init>:(Ljdk/vm/ci/meta/ResolvedJavaMethod;Lcom/oracle/svm/core/annotate/Delete;)V
invokestatic com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.register:(Ljava/util/Map;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
2: goto 5
3: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.deleteAnnotations:Ljava/util/Map;
aload 2
aload 3
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
4: aload 0
getfield com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.deleteAnnotations: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:
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lcom/oracle/svm/hosted/substitute/AnnotationSubstitutionProcessor;
0 6 1 annotated Ljdk/vm/ci/meta/ResolvedJavaMethod;
0 6 2 original Ljdk/vm/ci/meta/ResolvedJavaMethod;
0 6 3 deleteAnnotation Lcom/oracle/svm/core/annotate/Delete;
MethodParameters:
Name Flags
annotated
original
deleteAnnotation
private void registerAsDeleted(jdk.vm.ci.meta.ResolvedJavaField, jdk.vm.ci.meta.ResolvedJavaField, com.oracle.svm.core.annotate.Delete);
descriptor: (Ljdk/vm/ci/meta/ResolvedJavaField;Ljdk/vm/ci/meta/ResolvedJavaField;Lcom/oracle/svm/core/annotate/Delete;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=7, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: getstatic com.oracle.svm.hosted.NativeImageOptions.ReportUnsupportedElementsAtRuntime:Lcom/oracle/svm/core/option/HostedOptionKey;
invokevirtual com.oracle.svm.core.option.HostedOptionKey.getValue:()Ljava/lang/Object;
checkcast java.lang.Boolean
invokevirtual java.lang.Boolean.booleanValue:()Z
ifeq 3
1: aload 0
getfield com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.fieldSubstitutions:Ljava/util/Map;
aload 1
aload 2
new com.oracle.svm.hosted.substitute.AnnotatedField
dup
aload 2
aload 3
invokespecial com.oracle.svm.hosted.substitute.AnnotatedField.<init>:(Ljdk/vm/ci/meta/ResolvedJavaField;Ljava/lang/annotation/Annotation;)V
invokestatic com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.register:(Ljava/util/Map;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
2: goto 5
3: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.deleteAnnotations:Ljava/util/Map;
aload 2
aload 3
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
4: aload 0
getfield com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.deleteAnnotations: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:
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lcom/oracle/svm/hosted/substitute/AnnotationSubstitutionProcessor;
0 6 1 annotated Ljdk/vm/ci/meta/ResolvedJavaField;
0 6 2 original Ljdk/vm/ci/meta/ResolvedJavaField;
0 6 3 deleteAnnotation Lcom/oracle/svm/core/annotate/Delete;
MethodParameters:
Name Flags
annotated
original
deleteAnnotation
private void handleSubstitutionClass(java.lang.Class<?>, java.lang.Class<?>);
descriptor: (Ljava/lang/Class;Ljava/lang/Class;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=12, args_size=3
start local 0 start local 1 start local 2 0: aload 1
invokevirtual java.lang.Class.isInterface:()Z
aload 2
invokevirtual java.lang.Class.isInterface:()Z
if_icmpne 1
iconst_1
goto 2
StackMap locals:
StackMap stack:
1: iconst_0
StackMap locals:
StackMap stack: int
2: ldc "if original is interface, target must also be interface: %s"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 1
aastore
invokestatic com.oracle.svm.core.util.UserError.guarantee:(ZLjava/lang/String;[Ljava/lang/Object;)V
3: aload 2
invokevirtual java.lang.Class.getSuperclass:()Ljava/lang/Class;
ldc Ljava/lang/Object;
if_acmpeq 4
aload 2
invokevirtual java.lang.Class.isInterface:()Z
ifne 4
iconst_0
goto 5
StackMap locals:
StackMap stack:
4: iconst_1
StackMap locals:
StackMap stack: int
5: ldc "target class must inherit directly from Object: %s"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 2
aastore
invokestatic com.oracle.svm.core.util.UserError.guarantee:(ZLjava/lang/String;[Ljava/lang/Object;)V
6: aload 0
getfield com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.metaAccess:Ljdk/vm/ci/meta/MetaAccessProvider;
aload 2
invokeinterface jdk.vm.ci.meta.MetaAccessProvider.lookupJavaType:(Ljava/lang/Class;)Ljdk/vm/ci/meta/ResolvedJavaType;
astore 3
start local 3 7: aload 0
getfield com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.metaAccess:Ljdk/vm/ci/meta/MetaAccessProvider;
aload 1
invokeinterface jdk.vm.ci.meta.MetaAccessProvider.lookupJavaType:(Ljava/lang/Class;)Ljdk/vm/ci/meta/ResolvedJavaType;
astore 4
start local 4 8: iconst_0
istore 5
start local 5 9: goto 15
10: StackMap locals: jdk.vm.ci.meta.ResolvedJavaType jdk.vm.ci.meta.ResolvedJavaType int
StackMap stack:
new com.oracle.svm.hosted.substitute.SubstitutionType
dup
aload 3
aload 4
invokespecial com.oracle.svm.hosted.substitute.SubstitutionType.<init>:(Ljdk/vm/ci/meta/ResolvedJavaType;Ljdk/vm/ci/meta/ResolvedJavaType;)V
astore 6
start local 6 11: aload 0
getfield com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.typeSubstitutions:Ljava/util/Map;
aload 4
aload 3
aload 6
invokestatic com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.register:(Ljava/util/Map;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
12: aload 3
invokeinterface jdk.vm.ci.meta.ResolvedJavaType.getArrayClass:()Ljdk/vm/ci/meta/ResolvedJavaType;
astore 3
13: aload 4
invokeinterface jdk.vm.ci.meta.ResolvedJavaType.getArrayClass:()Ljdk/vm/ci/meta/ResolvedJavaType;
astore 4
end local 6 14: iinc 5 1
StackMap locals:
StackMap stack:
15: iload 5
bipush 8
if_icmplt 10
end local 5 16: aload 1
invokevirtual java.lang.Class.getDeclaredMethods:()[Ljava/lang/reflect/Method;
dup
astore 8
arraylength
istore 7
iconst_0
istore 6
goto 20
StackMap locals: com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor java.lang.Class java.lang.Class jdk.vm.ci.meta.ResolvedJavaType jdk.vm.ci.meta.ResolvedJavaType top int int java.lang.reflect.Method[]
StackMap stack:
17: aload 8
iload 6
aaload
astore 5
start local 5 18: aload 0
aload 5
aload 2
invokevirtual com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.handleAnnotatedMethodInSubstitutionClass:(Ljava/lang/reflect/Executable;Ljava/lang/Class;)V
end local 5 19: iinc 6 1
StackMap locals:
StackMap stack:
20: iload 6
iload 7
if_icmplt 17
21: aload 1
invokevirtual java.lang.Class.getDeclaredConstructors:()[Ljava/lang/reflect/Constructor;
dup
astore 8
arraylength
istore 7
iconst_0
istore 6
goto 25
StackMap locals: com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor java.lang.Class java.lang.Class jdk.vm.ci.meta.ResolvedJavaType jdk.vm.ci.meta.ResolvedJavaType top int int java.lang.reflect.Constructor[]
StackMap stack:
22: aload 8
iload 6
aaload
astore 5
start local 5 23: aload 0
aload 5
aload 2
invokevirtual com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.handleAnnotatedMethodInSubstitutionClass:(Ljava/lang/reflect/Executable;Ljava/lang/Class;)V
end local 5 24: iinc 6 1
StackMap locals:
StackMap stack:
25: iload 6
iload 7
if_icmplt 22
26: aload 2
invokevirtual java.lang.Class.getDeclaredMethods:()[Ljava/lang/reflect/Method;
dup
astore 8
arraylength
istore 7
iconst_0
istore 6
goto 30
StackMap locals: com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor java.lang.Class java.lang.Class jdk.vm.ci.meta.ResolvedJavaType jdk.vm.ci.meta.ResolvedJavaType top int int java.lang.reflect.Method[]
StackMap stack:
27: aload 8
iload 6
aaload
astore 5
start local 5 28: aload 0
aload 5
invokevirtual com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.handleOriginalMethodInSubstitutionClass:(Ljava/lang/reflect/Executable;)V
end local 5 29: iinc 6 1
StackMap locals:
StackMap stack:
30: iload 6
iload 7
if_icmplt 27
31: aload 2
invokevirtual java.lang.Class.getDeclaredConstructors:()[Ljava/lang/reflect/Constructor;
dup
astore 8
arraylength
istore 7
iconst_0
istore 6
goto 35
StackMap locals: com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor java.lang.Class java.lang.Class jdk.vm.ci.meta.ResolvedJavaType jdk.vm.ci.meta.ResolvedJavaType top int int java.lang.reflect.Constructor[]
StackMap stack:
32: aload 8
iload 6
aaload
astore 5
start local 5 33: aload 0
aload 5
invokevirtual com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.handleOriginalMethodInSubstitutionClass:(Ljava/lang/reflect/Executable;)V
end local 5 34: iinc 6 1
StackMap locals:
StackMap stack:
35: iload 6
iload 7
if_icmplt 32
36: aload 1
invokevirtual java.lang.Class.getDeclaredFields:()[Ljava/lang/reflect/Field;
dup
astore 8
arraylength
istore 7
iconst_0
istore 6
goto 49
StackMap locals: com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor java.lang.Class java.lang.Class jdk.vm.ci.meta.ResolvedJavaType jdk.vm.ci.meta.ResolvedJavaType top int int java.lang.reflect.Field[]
StackMap stack:
37: aload 8
iload 6
aaload
astore 5
start local 5 38: aload 0
getfield com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.metaAccess:Ljdk/vm/ci/meta/MetaAccessProvider;
aload 5
invokeinterface jdk.vm.ci.meta.MetaAccessProvider.lookupJavaField:(Ljava/lang/reflect/Field;)Ljdk/vm/ci/meta/ResolvedJavaField;
astore 9
start local 9 39: aload 0
aload 1
aload 9
aload 9
aload 5
invokevirtual com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.fieldValueRecomputation:(Ljava/lang/Class;Ljdk/vm/ci/meta/ResolvedJavaField;Ljdk/vm/ci/meta/ResolvedJavaField;Ljava/lang/reflect/Field;)Ljdk/vm/ci/meta/ResolvedJavaField;
astore 10
start local 10 40: aload 10
aload 9
invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
ifne 47
41: aload 0
aload 5
aload 2
iconst_1
invokevirtual com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.findOriginalField:(Ljava/lang/reflect/Field;Ljava/lang/Class;Z)Ljdk/vm/ci/meta/ResolvedJavaField;
astore 11
start local 11 42: aload 11
ifnull 43
aload 10
invokeinterface jdk.vm.ci.meta.ResolvedJavaField.isFinal:()Z
ifeq 43
aload 11
invokeinterface jdk.vm.ci.meta.ResolvedJavaField.isFinal:()Z
ifne 43
iconst_0
goto 44
StackMap locals: com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor java.lang.Class java.lang.Class jdk.vm.ci.meta.ResolvedJavaType jdk.vm.ci.meta.ResolvedJavaType java.lang.reflect.Field int int java.lang.reflect.Field[] jdk.vm.ci.meta.ResolvedJavaField jdk.vm.ci.meta.ResolvedJavaField jdk.vm.ci.meta.ResolvedJavaField
StackMap stack:
43: iconst_1
StackMap locals:
StackMap stack: int
44: ldc "a non-final field cannot be redeclared as final through substitution: %s"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 9
aastore
invokestatic com.oracle.svm.core.util.UserError.guarantee:(ZLjava/lang/String;[Ljava/lang/Object;)V
45: aload 0
getfield com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.fieldSubstitutions:Ljava/util/Map;
aload 9
aload 11
aload 10
invokestatic com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.register:(Ljava/util/Map;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
end local 11 46: goto 48
47: StackMap locals:
StackMap stack:
aload 0
aload 5
aload 2
invokevirtual com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.handleAnnotatedFieldInSubstitutionClass:(Ljava/lang/reflect/Field;Ljava/lang/Class;)V
end local 10 end local 9 end local 5 48: StackMap locals: com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor java.lang.Class java.lang.Class jdk.vm.ci.meta.ResolvedJavaType jdk.vm.ci.meta.ResolvedJavaType top int int java.lang.reflect.Field[]
StackMap stack:
iinc 6 1
StackMap locals:
StackMap stack:
49: iload 6
iload 7
if_icmplt 37
50: aload 2
invokevirtual java.lang.Class.getDeclaredFields:()[Ljava/lang/reflect/Field;
dup
astore 8
arraylength
istore 7
iconst_0
istore 6
goto 54
StackMap locals:
StackMap stack:
51: aload 8
iload 6
aaload
astore 5
start local 5 52: aload 0
aload 5
invokevirtual com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.handleOriginalFieldInSubstitutionClass:(Ljava/lang/reflect/Field;)V
end local 5 53: iinc 6 1
StackMap locals:
StackMap stack:
54: iload 6
iload 7
if_icmplt 51
55: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 56 0 this Lcom/oracle/svm/hosted/substitute/AnnotationSubstitutionProcessor;
0 56 1 annotatedClass Ljava/lang/Class<*>;
0 56 2 originalClass Ljava/lang/Class<*>;
7 56 3 original Ljdk/vm/ci/meta/ResolvedJavaType;
8 56 4 annotated Ljdk/vm/ci/meta/ResolvedJavaType;
9 16 5 i I
11 14 6 substitution Ljdk/vm/ci/meta/ResolvedJavaType;
18 19 5 m Ljava/lang/reflect/Method;
23 24 5 c Ljava/lang/reflect/Constructor<*>;
28 29 5 m Ljava/lang/reflect/Method;
33 34 5 c Ljava/lang/reflect/Constructor<*>;
38 48 5 f Ljava/lang/reflect/Field;
39 48 9 field Ljdk/vm/ci/meta/ResolvedJavaField;
40 48 10 alias Ljdk/vm/ci/meta/ResolvedJavaField;
42 46 11 originalField Ljdk/vm/ci/meta/ResolvedJavaField;
52 53 5 f Ljava/lang/reflect/Field;
Signature: (Ljava/lang/Class<*>;Ljava/lang/Class<*>;)V
MethodParameters:
Name Flags
annotatedClass
originalClass
private void handleAnnotatedMethodInSubstitutionClass(java.lang.reflect.Executable, java.lang.Class<?>);
descriptor: (Ljava/lang/reflect/Executable;Ljava/lang/Class;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=9, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
ldc Lcom/oracle/svm/core/annotate/Substitute;
invokevirtual com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.lookupAnnotation:(Ljava/lang/reflect/AnnotatedElement;Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
checkcast com.oracle.svm.core.annotate.Substitute
astore 3
start local 3 1: aload 0
aload 1
ldc Lcom/oracle/svm/core/annotate/KeepOriginal;
invokevirtual com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.lookupAnnotation:(Ljava/lang/reflect/AnnotatedElement;Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
checkcast com.oracle.svm.core.annotate.KeepOriginal
astore 4
start local 4 2: aload 3
ifnull 3
iconst_1
goto 4
StackMap locals: com.oracle.svm.core.annotate.Substitute com.oracle.svm.core.annotate.KeepOriginal
StackMap stack:
3: iconst_0
StackMap locals:
StackMap stack: int
4: aload 4
ifnull 5
iconst_1
goto 6
StackMap locals:
StackMap stack: int
5: iconst_0
StackMap locals: com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor java.lang.reflect.Executable java.lang.Class com.oracle.svm.core.annotate.Substitute com.oracle.svm.core.annotate.KeepOriginal
StackMap stack: int int
6: iadd
istore 5
start local 5 7: iload 5
ifne 9
8: return
9: StackMap locals: int
StackMap stack:
iload 5
iconst_1
if_icmpne 10
iconst_1
goto 11
StackMap locals:
StackMap stack:
10: iconst_0
StackMap locals:
StackMap stack: int
11: ldc "only one of @Substitute or @KeepOriginal can be used: %s"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 1
aastore
invokestatic com.oracle.svm.core.util.UserError.guarantee:(ZLjava/lang/String;[Ljava/lang/Object;)V
12: aload 0
getfield com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.metaAccess:Ljdk/vm/ci/meta/MetaAccessProvider;
aload 1
invokeinterface jdk.vm.ci.meta.MetaAccessProvider.lookupJavaMethod:(Ljava/lang/reflect/Executable;)Ljdk/vm/ci/meta/ResolvedJavaMethod;
astore 6
start local 6 13: aload 0
aload 1
aload 2
invokevirtual com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.findOriginalMethod:(Ljava/lang/reflect/Executable;Ljava/lang/Class;)Ljdk/vm/ci/meta/ResolvedJavaMethod;
astore 7
start local 7 14: aload 7
ifnull 23
15: aload 3
ifnull 21
16: new com.oracle.svm.hosted.substitute.SubstitutionMethod
dup
aload 7
aload 6
iconst_1
invokespecial com.oracle.svm.hosted.substitute.SubstitutionMethod.<init>:(Ljdk/vm/ci/meta/ResolvedJavaMethod;Ljdk/vm/ci/meta/ResolvedJavaMethod;Z)V
astore 8
start local 8 17: aload 3
invokeinterface com.oracle.svm.core.annotate.Substitute.polymorphicSignature:()Z
ifeq 19
18: aload 0
getfield com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.polymorphicMethodSubstitutions:Ljava/util/Map;
aload 6
aload 7
aload 8
invokestatic com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.register:(Ljava/util/Map;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
19: StackMap locals: jdk.vm.ci.meta.ResolvedJavaMethod jdk.vm.ci.meta.ResolvedJavaMethod com.oracle.svm.hosted.substitute.SubstitutionMethod
StackMap stack:
aload 0
getfield com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.methodSubstitutions:Ljava/util/Map;
aload 6
aload 7
aload 8
invokestatic com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.register:(Ljava/util/Map;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
end local 8 20: goto 23
StackMap locals:
StackMap stack:
21: aload 4
ifnull 23
22: aload 0
getfield com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.methodSubstitutions:Ljava/util/Map;
aload 6
aload 7
aload 7
invokestatic com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.register:(Ljava/util/Map;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
23: StackMap locals:
StackMap stack:
return
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 24 0 this Lcom/oracle/svm/hosted/substitute/AnnotationSubstitutionProcessor;
0 24 1 annotatedMethod Ljava/lang/reflect/Executable;
0 24 2 originalClass Ljava/lang/Class<*>;
1 24 3 substituteAnnotation Lcom/oracle/svm/core/annotate/Substitute;
2 24 4 keepOriginalAnnotation Lcom/oracle/svm/core/annotate/KeepOriginal;
7 24 5 numAnnotations I
13 24 6 annotated Ljdk/vm/ci/meta/ResolvedJavaMethod;
14 24 7 original Ljdk/vm/ci/meta/ResolvedJavaMethod;
17 20 8 substitution Lcom/oracle/svm/hosted/substitute/SubstitutionMethod;
Signature: (Ljava/lang/reflect/Executable;Ljava/lang/Class<*>;)V
MethodParameters:
Name Flags
annotatedMethod
originalClass
private void handleAnnotatedFieldInSubstitutionClass(java.lang.reflect.Field, java.lang.Class<?>);
descriptor: (Ljava/lang/reflect/Field;Ljava/lang/Class;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=7, locals=6, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
ldc Lcom/oracle/svm/core/annotate/Substitute;
invokevirtual com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.lookupAnnotation:(Ljava/lang/reflect/AnnotatedElement;Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
checkcast com.oracle.svm.core.annotate.Substitute
astore 3
start local 3 1: aload 3
ifnonnull 3
2: return
3: StackMap locals: com.oracle.svm.core.annotate.Substitute
StackMap stack:
aload 0
getfield com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.metaAccess:Ljdk/vm/ci/meta/MetaAccessProvider;
aload 1
invokeinterface jdk.vm.ci.meta.MetaAccessProvider.lookupJavaField:(Ljava/lang/reflect/Field;)Ljdk/vm/ci/meta/ResolvedJavaField;
astore 4
start local 4 4: aload 0
aload 1
aload 2
iconst_0
invokevirtual com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.findOriginalField:(Ljava/lang/reflect/Field;Ljava/lang/Class;Z)Ljdk/vm/ci/meta/ResolvedJavaField;
astore 5
start local 5 5: aload 5
ifnull 7
6: aload 0
getfield com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.fieldSubstitutions:Ljava/util/Map;
aload 4
aload 5
new com.oracle.svm.hosted.substitute.SubstitutionField
dup
aload 5
aload 4
invokespecial com.oracle.svm.hosted.substitute.SubstitutionField.<init>:(Ljdk/vm/ci/meta/ResolvedJavaField;Ljdk/vm/ci/meta/ResolvedJavaField;)V
invokestatic com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.register:(Ljava/util/Map;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
7: StackMap locals: jdk.vm.ci.meta.ResolvedJavaField jdk.vm.ci.meta.ResolvedJavaField
StackMap stack:
return
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 8 0 this Lcom/oracle/svm/hosted/substitute/AnnotationSubstitutionProcessor;
0 8 1 annotatedField Ljava/lang/reflect/Field;
0 8 2 originalClass Ljava/lang/Class<*>;
1 8 3 substituteAnnotation Lcom/oracle/svm/core/annotate/Substitute;
4 8 4 annotated Ljdk/vm/ci/meta/ResolvedJavaField;
5 8 5 original Ljdk/vm/ci/meta/ResolvedJavaField;
Signature: (Ljava/lang/reflect/Field;Ljava/lang/Class<*>;)V
MethodParameters:
Name Flags
annotatedField
originalClass
private void handleOriginalMethodInSubstitutionClass(java.lang.reflect.Executable);
descriptor: (Ljava/lang/reflect/Executable;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.metaAccess:Ljdk/vm/ci/meta/MetaAccessProvider;
aload 1
invokeinterface jdk.vm.ci.meta.MetaAccessProvider.lookupJavaMethod:(Ljava/lang/reflect/Executable;)Ljdk/vm/ci/meta/ResolvedJavaMethod;
astore 2
start local 2 1: aload 0
getfield com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.methodSubstitutions:Ljava/util/Map;
aload 2
invokeinterface java.util.Map.containsKey:(Ljava/lang/Object;)Z
ifne 6
2: aload 2
invokeinterface jdk.vm.ci.meta.ResolvedJavaMethod.isSynthetic:()Z
ifeq 5
3: aload 0
getfield com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.methodSubstitutions:Ljava/util/Map;
aconst_null
aload 2
aload 2
invokestatic com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.register:(Ljava/util/Map;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
4: goto 6
5: StackMap locals: jdk.vm.ci.meta.ResolvedJavaMethod
StackMap stack:
aload 0
aconst_null
aload 2
getstatic com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.SUBSTITUTION_DELETE:Lcom/oracle/svm/core/annotate/Delete;
invokevirtual com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.registerAsDeleted:(Ljdk/vm/ci/meta/ResolvedJavaMethod;Ljdk/vm/ci/meta/ResolvedJavaMethod;Lcom/oracle/svm/core/annotate/Delete;)V
6: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lcom/oracle/svm/hosted/substitute/AnnotationSubstitutionProcessor;
0 7 1 m Ljava/lang/reflect/Executable;
1 7 2 method Ljdk/vm/ci/meta/ResolvedJavaMethod;
MethodParameters:
Name Flags
m
private void handleOriginalFieldInSubstitutionClass(java.lang.reflect.Field);
descriptor: (Ljava/lang/reflect/Field;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.metaAccess:Ljdk/vm/ci/meta/MetaAccessProvider;
aload 1
invokeinterface jdk.vm.ci.meta.MetaAccessProvider.lookupJavaField:(Ljava/lang/reflect/Field;)Ljdk/vm/ci/meta/ResolvedJavaField;
astore 2
start local 2 1: aload 0
getfield com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.fieldSubstitutions:Ljava/util/Map;
aload 2
invokeinterface java.util.Map.containsKey:(Ljava/lang/Object;)Z
ifne 6
2: aload 2
invokeinterface jdk.vm.ci.meta.ResolvedJavaField.isSynthetic:()Z
ifeq 5
3: aload 0
getfield com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.fieldSubstitutions:Ljava/util/Map;
aconst_null
aload 2
aload 2
invokestatic com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.register:(Ljava/util/Map;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
4: goto 6
5: StackMap locals: jdk.vm.ci.meta.ResolvedJavaField
StackMap stack:
aload 0
aconst_null
aload 2
getstatic com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.SUBSTITUTION_DELETE:Lcom/oracle/svm/core/annotate/Delete;
invokevirtual com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.registerAsDeleted:(Ljdk/vm/ci/meta/ResolvedJavaField;Ljdk/vm/ci/meta/ResolvedJavaField;Lcom/oracle/svm/core/annotate/Delete;)V
6: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lcom/oracle/svm/hosted/substitute/AnnotationSubstitutionProcessor;
0 7 1 f Ljava/lang/reflect/Field;
1 7 2 field Ljdk/vm/ci/meta/ResolvedJavaField;
MethodParameters:
Name Flags
f
private jdk.vm.ci.meta.ResolvedJavaMethod findOriginalMethod(java.lang.reflect.Executable, java.lang.Class<?>);
descriptor: (Ljava/lang/reflect/Executable;Ljava/lang/Class;)Ljdk/vm/ci/meta/ResolvedJavaMethod;
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=7, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
ldc Lcom/oracle/svm/core/annotate/TargetElement;
invokevirtual com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.lookupAnnotation:(Ljava/lang/reflect/AnnotatedElement;Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
checkcast com.oracle.svm.core.annotate.TargetElement
astore 3
start local 3 1: ldc ""
astore 4
start local 4 2: aload 3
ifnull 6
3: aload 3
invokeinterface com.oracle.svm.core.annotate.TargetElement.name:()Ljava/lang/String;
astore 4
4: aload 3
aload 2
aload 1
invokestatic com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.isIncluded:(Lcom/oracle/svm/core/annotate/TargetElement;Ljava/lang/Class;Ljava/lang/reflect/AnnotatedElement;)Z
ifne 6
5: aconst_null
areturn
6: StackMap locals: com.oracle.svm.core.annotate.TargetElement java.lang.String
StackMap stack:
aload 4
invokevirtual java.lang.String.length:()I
ifne 8
7: aload 1
invokevirtual java.lang.reflect.Executable.getName:()Ljava/lang/String;
astore 4
8: StackMap locals:
StackMap stack:
aload 1
instanceof java.lang.reflect.Method
ifeq 16
aload 4
ldc "<init>"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 16
9: aload 0
aload 1
invokevirtual java.lang.reflect.Executable.getParameterTypes:()[Ljava/lang/Class;
invokevirtual com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.interceptParameterTypes:([Ljava/lang/Class;)[Ljava/lang/Class;
astore 5
start local 5 10: aload 2
aload 4
aload 5
invokevirtual java.lang.Class.getDeclaredMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
astore 6
start local 6 11: aload 1
invokevirtual java.lang.reflect.Executable.getModifiers:()I
invokestatic java.lang.reflect.Modifier.isStatic:(I)Z
aload 6
invokevirtual java.lang.reflect.Method.getModifiers:()I
invokestatic java.lang.reflect.Modifier.isStatic:(I)Z
if_icmpne 12
iconst_1
goto 13
StackMap locals: java.lang.Class[] java.lang.reflect.Method
StackMap stack:
12: iconst_0
StackMap locals:
StackMap stack: int
13: ldc "Static modifier mismatch: %s, %s"
iconst_2
anewarray java.lang.Object
dup
iconst_0
aload 1
aastore
dup
iconst_1
aload 6
aastore
invokestatic com.oracle.svm.core.util.UserError.guarantee:(ZLjava/lang/String;[Ljava/lang/Object;)V
14: aload 0
getfield com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.metaAccess:Ljdk/vm/ci/meta/MetaAccessProvider;
aload 6
invokeinterface jdk.vm.ci.meta.MetaAccessProvider.lookupJavaMethod:(Ljava/lang/reflect/Executable;)Ljdk/vm/ci/meta/ResolvedJavaMethod;
15: areturn
end local 6 end local 5 16: StackMap locals:
StackMap stack:
aload 1
invokevirtual java.lang.reflect.Executable.getModifiers:()I
invokestatic java.lang.reflect.Modifier.isStatic:(I)Z
ifeq 17
iconst_0
goto 18
StackMap locals:
StackMap stack:
17: iconst_1
StackMap locals:
StackMap stack: int
18: ldc "Constructor Alias method %s must not be static"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 1
aastore
invokestatic com.oracle.svm.core.util.UserError.guarantee:(ZLjava/lang/String;[Ljava/lang/Object;)V
19: aload 0
aload 1
invokevirtual java.lang.reflect.Executable.getParameterTypes:()[Ljava/lang/Class;
invokevirtual com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.interceptParameterTypes:([Ljava/lang/Class;)[Ljava/lang/Class;
astore 5
start local 5 20: aload 2
aload 5
invokevirtual java.lang.Class.getDeclaredConstructor:([Ljava/lang/Class;)Ljava/lang/reflect/Constructor;
astore 6
start local 6 21: aload 0
getfield com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.metaAccess:Ljdk/vm/ci/meta/MetaAccessProvider;
aload 6
invokeinterface jdk.vm.ci.meta.MetaAccessProvider.lookupJavaMethod:(Ljava/lang/reflect/Executable;)Ljdk/vm/ci/meta/ResolvedJavaMethod;
22: areturn
end local 6 end local 5 23: StackMap locals:
StackMap stack: java.lang.NoSuchMethodException
pop
24: ldc "Could not find target method: %s"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 1
aastore
invokestatic com.oracle.svm.core.util.UserError.abort:(Ljava/lang/String;[Ljava/lang/Object;)Lcom/oracle/svm/core/util/UserError$UserException;
athrow
25: StackMap locals:
StackMap stack: java.lang.LinkageError
astore 5
start local 5 26: ldc "Cannot find %s.%s, %s can not be loaded, due to %s not being available in the classpath. Are you missing a dependency in your classpath?"
iconst_4
anewarray java.lang.Object
dup
iconst_0
27: aload 2
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
aastore
dup
iconst_1
aload 4
aastore
dup
iconst_2
aload 2
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
aastore
dup
iconst_3
aload 5
invokevirtual java.lang.LinkageError.getMessage:()Ljava/lang/String;
aastore
28: invokestatic com.oracle.svm.core.util.UserError.abort:(Ljava/lang/String;[Ljava/lang/Object;)Lcom/oracle/svm/core/util/UserError$UserException;
athrow
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 29 0 this Lcom/oracle/svm/hosted/substitute/AnnotationSubstitutionProcessor;
0 29 1 annotatedMethod Ljava/lang/reflect/Executable;
0 29 2 originalClass Ljava/lang/Class<*>;
1 29 3 targetElementAnnotation Lcom/oracle/svm/core/annotate/TargetElement;
2 29 4 originalName Ljava/lang/String;
10 16 5 originalParams [Ljava/lang/Class;
11 16 6 originalMethod Ljava/lang/reflect/Method;
20 23 5 originalParams [Ljava/lang/Class;
21 23 6 originalMethod Ljava/lang/reflect/Constructor<*>;
26 29 5 error Ljava/lang/LinkageError;
Exception table:
from to target type
8 15 23 Class java.lang.NoSuchMethodException
16 22 23 Class java.lang.NoSuchMethodException
8 15 25 Class java.lang.LinkageError
16 22 25 Class java.lang.LinkageError
Signature: (Ljava/lang/reflect/Executable;Ljava/lang/Class<*>;)Ljdk/vm/ci/meta/ResolvedJavaMethod;
MethodParameters:
Name Flags
annotatedMethod
originalClass
private jdk.vm.ci.meta.ResolvedJavaField findOriginalField(java.lang.reflect.Field, java.lang.Class<?>, boolean);
descriptor: (Ljava/lang/reflect/Field;Ljava/lang/Class;Z)Ljdk/vm/ci/meta/ResolvedJavaField;
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=11, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
aload 1
ldc Lcom/oracle/svm/core/annotate/TargetElement;
invokevirtual com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.lookupAnnotation:(Ljava/lang/reflect/AnnotatedElement;Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
checkcast com.oracle.svm.core.annotate.TargetElement
astore 4
start local 4 1: ldc ""
astore 5
start local 5 2: aload 4
ifnull 6
3: aload 4
invokeinterface com.oracle.svm.core.annotate.TargetElement.name:()Ljava/lang/String;
astore 5
4: aload 4
aload 2
aload 1
invokestatic com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.isIncluded:(Lcom/oracle/svm/core/annotate/TargetElement;Ljava/lang/Class;Ljava/lang/reflect/AnnotatedElement;)Z
ifne 6
5: aconst_null
areturn
6: StackMap locals: com.oracle.svm.core.annotate.TargetElement java.lang.String
StackMap stack:
aload 5
invokevirtual java.lang.String.length:()I
ifne 8
7: aload 1
invokevirtual java.lang.reflect.Field.getName:()Ljava/lang/String;
astore 5
8: StackMap locals:
StackMap stack:
aload 2
aload 5
invokevirtual java.lang.Class.getDeclaredField:(Ljava/lang/String;)Ljava/lang/reflect/Field;
astore 6
start local 6 9: aload 0
aload 1
invokevirtual java.lang.reflect.Field.getType:()Ljava/lang/Class;
invokevirtual com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.getTargetClass:(Ljava/lang/Class;)Ljava/lang/Class;
aload 6
invokevirtual java.lang.reflect.Field.getType:()Ljava/lang/Class;
invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
10: ldc "Type mismatch:%n %s %s%n %s %s"
iconst_4
anewarray java.lang.Object
dup
iconst_0
aload 1
invokevirtual java.lang.reflect.Field.getType:()Ljava/lang/Class;
aastore
dup
iconst_1
aload 1
aastore
dup
iconst_2
aload 6
invokevirtual java.lang.reflect.Field.getType:()Ljava/lang/Class;
aastore
dup
iconst_3
aload 6
aastore
11: invokestatic com.oracle.svm.core.util.UserError.guarantee:(ZLjava/lang/String;[Ljava/lang/Object;)V
12: aload 0
getfield com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.metaAccess:Ljdk/vm/ci/meta/MetaAccessProvider;
aload 6
invokeinterface jdk.vm.ci.meta.MetaAccessProvider.lookupJavaField:(Ljava/lang/reflect/Field;)Ljdk/vm/ci/meta/ResolvedJavaField;
13: areturn
end local 6 14: StackMap locals:
StackMap stack: java.lang.NoSuchFieldException
pop
15: aload 1
invokevirtual java.lang.reflect.Field.getModifiers:()I
invokestatic java.lang.reflect.Modifier.isStatic:(I)Z
ifeq 18
16: aload 0
getfield com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.metaAccess:Ljdk/vm/ci/meta/MetaAccessProvider;
aload 2
invokeinterface jdk.vm.ci.meta.MetaAccessProvider.lookupJavaType:(Ljava/lang/Class;)Ljdk/vm/ci/meta/ResolvedJavaType;
invokeinterface jdk.vm.ci.meta.ResolvedJavaType.getStaticFields:()[Ljdk/vm/ci/meta/ResolvedJavaField;
astore 6
start local 6 17: goto 19
end local 6 18: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.metaAccess:Ljdk/vm/ci/meta/MetaAccessProvider;
aload 2
invokeinterface jdk.vm.ci.meta.MetaAccessProvider.lookupJavaType:(Ljava/lang/Class;)Ljdk/vm/ci/meta/ResolvedJavaType;
iconst_1
invokeinterface jdk.vm.ci.meta.ResolvedJavaType.getInstanceFields:(Z)[Ljdk/vm/ci/meta/ResolvedJavaField;
astore 6
start local 6 19: StackMap locals: jdk.vm.ci.meta.ResolvedJavaField[]
StackMap stack:
aload 6
dup
astore 10
arraylength
istore 9
iconst_0
istore 8
goto 24
StackMap locals: com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor java.lang.reflect.Field java.lang.Class int com.oracle.svm.core.annotate.TargetElement java.lang.String jdk.vm.ci.meta.ResolvedJavaField[] top int int jdk.vm.ci.meta.ResolvedJavaField[]
StackMap stack:
20: aload 10
iload 8
aaload
astore 7
start local 7 21: aload 7
invokeinterface jdk.vm.ci.meta.ResolvedJavaField.getName:()Ljava/lang/String;
aload 5
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 23
22: aload 7
areturn
end local 7 23: StackMap locals:
StackMap stack:
iinc 8 1
StackMap locals:
StackMap stack:
24: iload 8
iload 9
if_icmplt 20
25: iload 3
ldc "could not find target field: %s"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 1
aastore
invokestatic com.oracle.svm.core.util.UserError.guarantee:(ZLjava/lang/String;[Ljava/lang/Object;)V
26: aconst_null
areturn
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 27 0 this Lcom/oracle/svm/hosted/substitute/AnnotationSubstitutionProcessor;
0 27 1 annotatedField Ljava/lang/reflect/Field;
0 27 2 originalClass Ljava/lang/Class<*>;
0 27 3 forceOptional Z
1 27 4 targetElementAnnotation Lcom/oracle/svm/core/annotate/TargetElement;
2 27 5 originalName Ljava/lang/String;
9 14 6 originalField Ljava/lang/reflect/Field;
17 18 6 fields [Ljdk/vm/ci/meta/ResolvedJavaField;
19 27 6 fields [Ljdk/vm/ci/meta/ResolvedJavaField;
21 23 7 f Ljdk/vm/ci/meta/ResolvedJavaField;
Exception table:
from to target type
8 13 14 Class java.lang.NoSuchFieldException
Signature: (Ljava/lang/reflect/Field;Ljava/lang/Class<*>;Z)Ljdk/vm/ci/meta/ResolvedJavaField;
MethodParameters:
Name Flags
annotatedField
originalClass
forceOptional
private static boolean isIncluded(com.oracle.svm.core.annotate.TargetElement, java.lang.Class<?>, java.lang.reflect.AnnotatedElement);
descriptor: (Lcom/oracle/svm/core/annotate/TargetElement;Ljava/lang/Class;Ljava/lang/reflect/AnnotatedElement;)Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=6, locals=10, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokeinterface com.oracle.svm.core.annotate.TargetElement.onlyWith:()[Ljava/lang/Class;
dup
astore 6
arraylength
istore 5
iconst_0
istore 4
goto 17
StackMap locals: com.oracle.svm.core.annotate.TargetElement java.lang.Class java.lang.reflect.AnnotatedElement top int int java.lang.Class[]
StackMap stack:
1: aload 6
iload 4
aaload
astore 3
start local 3 2: aload 3
invokestatic com.oracle.svm.util.ReflectionUtil.newInstance:(Ljava/lang/Class;)Ljava/lang/Object;
astore 7
start local 7 3: goto 6
end local 7 StackMap locals: com.oracle.svm.core.annotate.TargetElement java.lang.Class java.lang.reflect.AnnotatedElement java.lang.Class int int java.lang.Class[]
StackMap stack: com.oracle.svm.util.ReflectionUtil$ReflectionUtilError
4: astore 8
start local 8 5: aload 8
invokevirtual com.oracle.svm.util.ReflectionUtil$ReflectionUtilError.getCause:()Ljava/lang/Throwable;
ldc "Class specified as onlyWith for %s cannot be loaded or instantiated: %s"
iconst_2
anewarray java.lang.Object
dup
iconst_0
aload 2
aastore
dup
iconst_1
aload 3
invokevirtual java.lang.Class.getTypeName:()Ljava/lang/String;
aastore
invokestatic com.oracle.svm.core.util.UserError.abort:(Ljava/lang/Throwable;Ljava/lang/String;[Ljava/lang/Object;)Lcom/oracle/svm/core/util/UserError$UserException;
athrow
end local 8 start local 7 6: StackMap locals: java.lang.Object
StackMap stack:
aload 7
instanceof java.util.function.BooleanSupplier
ifeq 9
7: aload 7
checkcast java.util.function.BooleanSupplier
invokeinterface java.util.function.BooleanSupplier.getAsBoolean:()Z
istore 8
start local 8 8: goto 14
end local 8 StackMap locals:
StackMap stack:
9: aload 7
instanceof java.util.function.Predicate
ifeq 13
10: aload 7
checkcast java.util.function.Predicate
astore 9
start local 9 11: aload 9
aload 1
invokeinterface java.util.function.Predicate.test:(Ljava/lang/Object;)Z
istore 8
end local 9 start local 8 12: goto 14
end local 8 13: StackMap locals:
StackMap stack:
ldc "Class specified as onlyWith for %s does not implement %s or %s"
iconst_3
anewarray java.lang.Object
dup
iconst_0
aload 2
aastore
dup
iconst_1
ldc Ljava/util/function/BooleanSupplier;
invokevirtual java.lang.Class.getSimpleName:()Ljava/lang/String;
aastore
dup
iconst_2
ldc Ljava/util/function/Predicate;
invokevirtual java.lang.Class.getSimpleName:()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
start local 8 14: StackMap locals: int
StackMap stack:
iload 8
ifne 16
15: iconst_0
ireturn
end local 8 end local 7 end local 3 16: StackMap locals: com.oracle.svm.core.annotate.TargetElement java.lang.Class java.lang.reflect.AnnotatedElement top int int java.lang.Class[]
StackMap stack:
iinc 4 1
StackMap locals:
StackMap stack:
17: iload 4
iload 5
if_icmplt 1
18: iconst_1
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 19 0 targetElementAnnotation Lcom/oracle/svm/core/annotate/TargetElement;
0 19 1 originalClass Ljava/lang/Class<*>;
0 19 2 annotatedElement Ljava/lang/reflect/AnnotatedElement;
2 16 3 onlyWithClass Ljava/lang/Class<*>;
3 4 7 onlyWithProvider Ljava/lang/Object;
6 16 7 onlyWithProvider Ljava/lang/Object;
5 6 8 ex Lcom/oracle/svm/util/ReflectionUtil$ReflectionUtilError;
8 9 8 onlyWithResult Z
12 13 8 onlyWithResult Z
14 16 8 onlyWithResult Z
11 12 9 onlyWithPredicate Ljava/util/function/Predicate<Ljava/lang/Class<*>;>;
Exception table:
from to target type
2 3 4 Class com.oracle.svm.util.ReflectionUtil$ReflectionUtilError
Signature: (Lcom/oracle/svm/core/annotate/TargetElement;Ljava/lang/Class<*>;Ljava/lang/reflect/AnnotatedElement;)Z
MethodParameters:
Name Flags
targetElementAnnotation
originalClass
annotatedElement
private static <T> void register(java.util.Map<T, T>, T, T, );
descriptor: (Ljava/util/Map;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=6, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 1
ifnull 5
1: aload 0
aload 1
invokeinterface java.util.Map.containsKey:(Ljava/lang/Object;)Z
ifeq 2
aload 0
aload 1
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
aload 2
if_acmpeq 2
aload 0
aload 1
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
aload 3
if_acmpeq 2
iconst_0
goto 3
StackMap locals:
StackMap stack:
2: iconst_1
StackMap locals:
StackMap stack: int
3: ldc "Already registered: %s"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 1
aastore
invokestatic com.oracle.svm.core.util.UserError.guarantee:(ZLjava/lang/String;[Ljava/lang/Object;)V
4: aload 0
aload 1
aload 3
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
5: StackMap locals:
StackMap stack:
aload 2
ifnull 10
6: aload 0
aload 2
invokeinterface java.util.Map.containsKey:(Ljava/lang/Object;)Z
ifeq 7
aload 0
aload 2
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
aload 2
if_acmpeq 7
aload 0
aload 2
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
aload 3
if_acmpeq 7
iconst_0
goto 8
StackMap locals:
StackMap stack:
7: iconst_1
StackMap locals:
StackMap stack: int
8: ldc "Already registered: %s"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 2
aastore
invokestatic com.oracle.svm.core.util.UserError.guarantee:(ZLjava/lang/String;[Ljava/lang/Object;)V
9: aload 0
aload 2
aload 3
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
10: StackMap locals:
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 substitutions Ljava/util/Map<TT;TT;>;
0 11 1 annotated TT;
0 11 2 original TT;
0 11 3 target TT;
Signature: <T:Ljava/lang/Object;>(Ljava/util/Map<TT;TT;>;TT;TT;TT;)V
MethodParameters:
Name Flags
substitutions
annotated
original
target
private jdk.vm.ci.meta.ResolvedJavaField fieldValueRecomputation(java.lang.Class<?>, jdk.vm.ci.meta.ResolvedJavaField, jdk.vm.ci.meta.ResolvedJavaField, java.lang.reflect.Field);
descriptor: (Ljava/lang/Class;Ljdk/vm/ci/meta/ResolvedJavaField;Ljdk/vm/ci/meta/ResolvedJavaField;Ljava/lang/reflect/Field;)Ljdk/vm/ci/meta/ResolvedJavaField;
flags: (0x0002) ACC_PRIVATE
Code:
stack=8, locals=12, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 0
aload 4
ldc Lcom/oracle/svm/core/annotate/RecomputeFieldValue;
invokevirtual com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.lookupAnnotation:(Ljava/lang/reflect/AnnotatedElement;Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
checkcast com.oracle.svm.core.annotate.RecomputeFieldValue
astore 5
start local 5 1: aload 0
aload 4
ldc Lcom/oracle/svm/core/annotate/InjectAccessors;
invokevirtual com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.lookupAnnotation:(Ljava/lang/reflect/AnnotatedElement;Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
checkcast com.oracle.svm.core.annotate.InjectAccessors
astore 6
start local 6 2: aload 5
ifnull 3
iconst_1
goto 4
StackMap locals: com.oracle.svm.core.annotate.RecomputeFieldValue com.oracle.svm.core.annotate.InjectAccessors
StackMap stack:
3: iconst_0
StackMap locals:
StackMap stack: int
4: aload 6
ifnull 5
iconst_1
goto 6
StackMap locals:
StackMap stack: int
5: iconst_0
StackMap locals: com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor java.lang.Class jdk.vm.ci.meta.ResolvedJavaField jdk.vm.ci.meta.ResolvedJavaField java.lang.reflect.Field com.oracle.svm.core.annotate.RecomputeFieldValue com.oracle.svm.core.annotate.InjectAccessors
StackMap stack: int int
6: iadd
istore 7
start local 7 7: iload 7
iconst_1
if_icmpgt 8
iconst_1
goto 9
StackMap locals: int
StackMap stack:
8: iconst_0
StackMap locals:
StackMap stack: int
9: ldc "Only one of @RecomputeFieldValue or @InjectAccessors can be used: %s"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 4
aastore
invokestatic com.oracle.svm.core.util.UserError.guarantee:(ZLjava/lang/String;[Ljava/lang/Object;)V
10: aload 6
ifnull 12
11: new com.oracle.svm.hosted.substitute.AnnotatedField
dup
aload 2
aload 6
invokespecial com.oracle.svm.hosted.substitute.AnnotatedField.<init>:(Ljdk/vm/ci/meta/ResolvedJavaField;Ljava/lang/annotation/Annotation;)V
areturn
12: StackMap locals:
StackMap stack:
aload 5
ifnonnull 14
aload 2
invokeinterface jdk.vm.ci.meta.ResolvedJavaField.isFinal:()Z
ifne 14
13: aload 2
areturn
14: StackMap locals:
StackMap stack:
getstatic com.oracle.svm.core.annotate.RecomputeFieldValue$Kind.None:Lcom/oracle/svm/core/annotate/RecomputeFieldValue$Kind;
astore 8
start local 8 15: aload 1
astore 9
start local 9 16: ldc ""
astore 10
start local 10 17: aload 2
invokeinterface jdk.vm.ci.meta.ResolvedJavaField.isFinal:()Z
ifeq 18
aload 3
invokeinterface jdk.vm.ci.meta.ResolvedJavaField.isFinal:()Z
ifeq 18
iconst_1
goto 19
StackMap locals: com.oracle.svm.core.annotate.RecomputeFieldValue$Kind java.lang.Class java.lang.String
StackMap stack:
18: iconst_0
StackMap locals:
StackMap stack: int
19: istore 11
start local 11 20: aload 5
ifnull 35
21: aload 5
invokeinterface com.oracle.svm.core.annotate.RecomputeFieldValue.kind:()Lcom/oracle/svm/core/annotate/RecomputeFieldValue$Kind;
astore 8
22: aload 5
invokeinterface com.oracle.svm.core.annotate.RecomputeFieldValue.name:()Ljava/lang/String;
astore 10
23: aload 5
invokeinterface com.oracle.svm.core.annotate.RecomputeFieldValue.isFinal:()Z
istore 11
24: iload 11
ifeq 25
aload 8
invokestatic com.oracle.svm.hosted.substitute.ComputedValueField.isFinalValid:(Lcom/oracle/svm/core/annotate/RecomputeFieldValue$Kind;)Z
ifne 25
iconst_0
goto 26
StackMap locals: int
StackMap stack:
25: iconst_1
StackMap locals:
StackMap stack: int
26: ldc "@%s with %s can never be final during analysis: unset isFinal in the annotation on %s"
iconst_3
anewarray java.lang.Object
dup
iconst_0
27: ldc Lcom/oracle/svm/core/annotate/RecomputeFieldValue;
invokevirtual java.lang.Class.getSimpleName:()Ljava/lang/String;
aastore
dup
iconst_1
aload 8
aastore
dup
iconst_2
aload 3
aastore
28: invokestatic com.oracle.svm.core.util.UserError.guarantee:(ZLjava/lang/String;[Ljava/lang/Object;)V
29: aload 5
invokeinterface com.oracle.svm.core.annotate.RecomputeFieldValue.declClass:()Ljava/lang/Class;
ldc Lcom/oracle/svm/core/annotate/RecomputeFieldValue;
if_acmpeq 33
30: aload 5
invokeinterface com.oracle.svm.core.annotate.RecomputeFieldValue.declClassName:()Ljava/lang/String;
invokevirtual java.lang.String.isEmpty:()Z
ldc "Both class and class name specified"
iconst_0
anewarray java.lang.Object
invokestatic com.oracle.svm.core.util.UserError.guarantee:(ZLjava/lang/String;[Ljava/lang/Object;)V
31: aload 5
invokeinterface com.oracle.svm.core.annotate.RecomputeFieldValue.declClass:()Ljava/lang/Class;
astore 9
32: goto 35
StackMap locals:
StackMap stack:
33: aload 5
invokeinterface com.oracle.svm.core.annotate.RecomputeFieldValue.declClassName:()Ljava/lang/String;
invokevirtual java.lang.String.isEmpty:()Z
ifne 35
34: aload 0
getfield com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.imageClassLoader:Lcom/oracle/svm/hosted/ImageClassLoader;
aload 5
invokeinterface com.oracle.svm.core.annotate.RecomputeFieldValue.declClassName:()Ljava/lang/String;
invokevirtual com.oracle.svm.hosted.ImageClassLoader.findClassOrFail:(Ljava/lang/String;)Ljava/lang/Class;
astore 9
35: StackMap locals:
StackMap stack:
new com.oracle.svm.hosted.substitute.ComputedValueField
dup
aload 2
aload 3
aload 8
aload 9
aload 10
iload 11
invokespecial com.oracle.svm.hosted.substitute.ComputedValueField.<init>:(Ljdk/vm/ci/meta/ResolvedJavaField;Ljdk/vm/ci/meta/ResolvedJavaField;Lcom/oracle/svm/core/annotate/RecomputeFieldValue$Kind;Ljava/lang/Class;Ljava/lang/String;Z)V
areturn
end local 11 end local 10 end local 9 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 36 0 this Lcom/oracle/svm/hosted/substitute/AnnotationSubstitutionProcessor;
0 36 1 originalClass Ljava/lang/Class<*>;
0 36 2 original Ljdk/vm/ci/meta/ResolvedJavaField;
0 36 3 annotated Ljdk/vm/ci/meta/ResolvedJavaField;
0 36 4 annotatedField Ljava/lang/reflect/Field;
1 36 5 recomputeAnnotation Lcom/oracle/svm/core/annotate/RecomputeFieldValue;
2 36 6 injectAccessorsAnnotation Lcom/oracle/svm/core/annotate/InjectAccessors;
7 36 7 numAnnotations I
15 36 8 kind Lcom/oracle/svm/core/annotate/RecomputeFieldValue$Kind;
16 36 9 targetClass Ljava/lang/Class<*>;
17 36 10 targetName Ljava/lang/String;
20 36 11 isFinal Z
Signature: (Ljava/lang/Class<*>;Ljdk/vm/ci/meta/ResolvedJavaField;Ljdk/vm/ci/meta/ResolvedJavaField;Ljava/lang/reflect/Field;)Ljdk/vm/ci/meta/ResolvedJavaField;
MethodParameters:
Name Flags
originalClass
original
annotated
annotatedField
private void reinitializeField(java.lang.reflect.Field);
descriptor: (Ljava/lang/reflect/Field;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=8, locals=4, args_size=2
start local 0 start local 1 0: aload 0
getfield com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.metaAccess:Ljdk/vm/ci/meta/MetaAccessProvider;
aload 1
invokeinterface jdk.vm.ci.meta.MetaAccessProvider.lookupJavaField:(Ljava/lang/reflect/Field;)Ljdk/vm/ci/meta/ResolvedJavaField;
astore 2
start local 2 1: new com.oracle.svm.hosted.substitute.ComputedValueField
dup
aload 2
aload 2
getstatic com.oracle.svm.core.annotate.RecomputeFieldValue$Kind.Reset:Lcom/oracle/svm/core/annotate/RecomputeFieldValue$Kind;
aload 1
invokevirtual java.lang.reflect.Field.getDeclaringClass:()Ljava/lang/Class;
ldc ""
iconst_0
invokespecial com.oracle.svm.hosted.substitute.ComputedValueField.<init>:(Ljdk/vm/ci/meta/ResolvedJavaField;Ljdk/vm/ci/meta/ResolvedJavaField;Lcom/oracle/svm/core/annotate/RecomputeFieldValue$Kind;Ljava/lang/Class;Ljava/lang/String;Z)V
astore 3
start local 3 2: aload 0
getfield com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.fieldSubstitutions:Ljava/util/Map;
aload 2
aload 2
aload 3
invokestatic com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.register:(Ljava/util/Map;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)V
3: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/oracle/svm/hosted/substitute/AnnotationSubstitutionProcessor;
0 4 1 annotatedField Ljava/lang/reflect/Field;
1 4 2 annotated Ljdk/vm/ci/meta/ResolvedJavaField;
2 4 3 alias Lcom/oracle/svm/hosted/substitute/ComputedValueField;
MethodParameters:
Name Flags
annotatedField
public java.lang.Class<?> getTargetClass(java.lang.Class<?>);
descriptor: (Ljava/lang/Class;)Ljava/lang/Class;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=7, args_size=2
start local 0 start local 1 0: aload 1
astore 2
start local 2 1: iconst_0
istore 3
start local 3 2: goto 5
3: StackMap locals: java.lang.Class int
StackMap stack:
iinc 3 1
4: aload 2
invokevirtual java.lang.Class.getComponentType:()Ljava/lang/Class;
astore 2
5: StackMap locals:
StackMap stack:
aload 2
invokevirtual java.lang.Class.isArray:()Z
ifne 3
6: aload 0
aload 2
ldc Lcom/oracle/svm/core/annotate/TargetClass;
invokevirtual com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.lookupAnnotation:(Ljava/lang/reflect/AnnotatedElement;Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
checkcast com.oracle.svm.core.annotate.TargetClass
astore 4
start local 4 7: aload 4
ifnonnull 9
8: aload 1
areturn
9: StackMap locals: com.oracle.svm.core.annotate.TargetClass
StackMap stack:
aload 0
aload 2
aload 4
invokevirtual com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.findTargetClass:(Ljava/lang/Class;Lcom/oracle/svm/core/annotate/TargetClass;)Ljava/lang/Class;
astore 5
start local 5 10: iconst_0
istore 6
start local 6 11: goto 14
12: StackMap locals: java.lang.Class int
StackMap stack:
aload 5
iconst_0
invokestatic java.lang.reflect.Array.newInstance:(Ljava/lang/Class;I)Ljava/lang/Object;
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
astore 5
13: iinc 6 1
StackMap locals:
StackMap stack:
14: iload 6
iload 3
if_icmplt 12
end local 6 15: aload 5
areturn
end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 16 0 this Lcom/oracle/svm/hosted/substitute/AnnotationSubstitutionProcessor;
0 16 1 annotatedClass Ljava/lang/Class<*>;
1 16 2 annotatedBaseClass Ljava/lang/Class<*>;
2 16 3 arrayDepth I
7 16 4 targetClassAnnotation Lcom/oracle/svm/core/annotate/TargetClass;
10 16 5 targetClass Ljava/lang/Class<*>;
11 15 6 i I
Signature: (Ljava/lang/Class<*>;)Ljava/lang/Class<*>;
MethodParameters:
Name Flags
annotatedClass
java.lang.Class<?> findTargetClass(java.lang.Class<?>, com.oracle.svm.core.annotate.TargetClass);
descriptor: (Ljava/lang/Class;Lcom/oracle/svm/core/annotate/TargetClass;)Ljava/lang/Class;
flags: (0x0000)
Code:
stack=6, locals=11, args_size=3
start local 0 start local 1 start local 2 0: aload 2
invokeinterface com.oracle.svm.core.annotate.TargetClass.value:()Ljava/lang/Class;
ldc Lcom/oracle/svm/core/annotate/TargetClass;
if_acmpeq 7
1: aload 2
invokeinterface com.oracle.svm.core.annotate.TargetClass.className:()Ljava/lang/String;
invokevirtual java.lang.String.isEmpty:()Z
ldc "Both class and class name specified for substitution"
iconst_0
anewarray java.lang.Object
invokestatic com.oracle.svm.core.util.UserError.guarantee:(ZLjava/lang/String;[Ljava/lang/Object;)V
2: aload 2
invokeinterface com.oracle.svm.core.annotate.TargetClass.classNameProvider:()Ljava/lang/Class;
ldc Lcom/oracle/svm/core/annotate/TargetClass$NoClassNameProvider;
if_acmpne 3
iconst_1
goto 4
StackMap locals:
StackMap stack:
3: iconst_0
StackMap locals:
StackMap stack: int
4: ldc "Both class and classNameProvider specified for substitution"
iconst_0
anewarray java.lang.Object
invokestatic com.oracle.svm.core.util.UserError.guarantee:(ZLjava/lang/String;[Ljava/lang/Object;)V
5: aload 2
invokeinterface com.oracle.svm.core.annotate.TargetClass.value:()Ljava/lang/Class;
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
astore 3
start local 3 6: goto 16
end local 3 StackMap locals:
StackMap stack:
7: aload 2
invokeinterface com.oracle.svm.core.annotate.TargetClass.classNameProvider:()Ljava/lang/Class;
ldc Lcom/oracle/svm/core/annotate/TargetClass$NoClassNameProvider;
if_acmpeq 12
8: aload 2
invokeinterface com.oracle.svm.core.annotate.TargetClass.classNameProvider:()Ljava/lang/Class;
invokestatic com.oracle.svm.util.ReflectionUtil.newInstance:(Ljava/lang/Class;)Ljava/lang/Object;
checkcast java.util.function.Function
aload 2
invokeinterface java.util.function.Function.apply:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.String
astore 3
start local 3 9: goto 16
end local 3 StackMap locals:
StackMap stack: com.oracle.svm.util.ReflectionUtil$ReflectionUtilError
10: astore 4
start local 4 11: aload 4
invokevirtual com.oracle.svm.util.ReflectionUtil$ReflectionUtilError.getCause:()Ljava/lang/Throwable;
ldc "Cannot instantiate classNameProvider: %s. The class must have a parameterless constructor."
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 2
invokeinterface com.oracle.svm.core.annotate.TargetClass.classNameProvider:()Ljava/lang/Class;
invokevirtual java.lang.Class.getTypeName:()Ljava/lang/String;
aastore
invokestatic com.oracle.svm.core.util.UserError.abort:(Ljava/lang/Throwable;Ljava/lang/String;[Ljava/lang/Object;)Lcom/oracle/svm/core/util/UserError$UserException;
athrow
end local 4 12: StackMap locals:
StackMap stack:
aload 2
invokeinterface com.oracle.svm.core.annotate.TargetClass.className:()Ljava/lang/String;
invokevirtual java.lang.String.isEmpty:()Z
ifeq 13
iconst_0
goto 14
StackMap locals:
StackMap stack:
13: iconst_1
StackMap locals:
StackMap stack: int
14: ldc "Neither class, className, nor classNameProvider specified for substitution"
iconst_0
anewarray java.lang.Object
invokestatic com.oracle.svm.core.util.UserError.guarantee:(ZLjava/lang/String;[Ljava/lang/Object;)V
15: aload 2
invokeinterface com.oracle.svm.core.annotate.TargetClass.className:()Ljava/lang/String;
astore 3
start local 3 16: StackMap locals: java.lang.String
StackMap stack:
aload 2
invokeinterface com.oracle.svm.core.annotate.TargetClass.onlyWith:()[Ljava/lang/Class;
dup
astore 7
arraylength
istore 6
iconst_0
istore 5
goto 35
StackMap locals: com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor java.lang.Class com.oracle.svm.core.annotate.TargetClass java.lang.String top int int java.lang.Class[]
StackMap stack:
17: aload 7
iload 5
aaload
astore 4
start local 4 18: aload 4
invokestatic com.oracle.svm.util.ReflectionUtil.newInstance:(Ljava/lang/Class;)Ljava/lang/Object;
astore 8
start local 8 19: goto 22
end local 8 StackMap locals: com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor java.lang.Class com.oracle.svm.core.annotate.TargetClass java.lang.String java.lang.Class int int java.lang.Class[]
StackMap stack: com.oracle.svm.util.ReflectionUtil$ReflectionUtilError
20: astore 9
start local 9 21: aload 9
invokevirtual com.oracle.svm.util.ReflectionUtil$ReflectionUtilError.getCause:()Ljava/lang/Throwable;
ldc "Class specified as onlyWith for %s cannot be loaded or instantiated: %s"
iconst_2
anewarray java.lang.Object
dup
iconst_0
aload 1
invokevirtual java.lang.Class.getTypeName:()Ljava/lang/String;
aastore
dup
iconst_1
aload 4
invokevirtual java.lang.Class.getTypeName:()Ljava/lang/String;
aastore
invokestatic com.oracle.svm.core.util.UserError.abort:(Ljava/lang/Throwable;Ljava/lang/String;[Ljava/lang/Object;)Lcom/oracle/svm/core/util/UserError$UserException;
athrow
end local 9 start local 8 22: StackMap locals: java.lang.Object
StackMap stack:
aload 8
instanceof java.util.function.BooleanSupplier
ifeq 25
23: aload 8
checkcast java.util.function.BooleanSupplier
invokeinterface java.util.function.BooleanSupplier.getAsBoolean:()Z
istore 9
start local 9 24: goto 32
end local 9 StackMap locals:
StackMap stack:
25: aload 8
instanceof java.util.function.Predicate
ifeq 29
26: aload 8
checkcast java.util.function.Predicate
astore 10
start local 10 27: aload 10
aload 3
invokeinterface java.util.function.Predicate.test:(Ljava/lang/Object;)Z
istore 9
end local 10 start local 9 28: goto 32
end local 9 29: StackMap locals:
StackMap stack:
ldc "Class specified as onlyWith for %s does not implement %s or %s"
iconst_3
anewarray java.lang.Object
dup
iconst_0
aload 1
invokevirtual java.lang.Class.getTypeName:()Ljava/lang/String;
aastore
dup
iconst_1
30: ldc Ljava/util/function/BooleanSupplier;
invokevirtual java.lang.Class.getSimpleName:()Ljava/lang/String;
aastore
dup
iconst_2
ldc Ljava/util/function/Predicate;
invokevirtual java.lang.Class.getSimpleName:()Ljava/lang/String;
aastore
31: invokestatic com.oracle.svm.core.util.UserError.abort:(Ljava/lang/String;[Ljava/lang/Object;)Lcom/oracle/svm/core/util/UserError$UserException;
athrow
start local 9 32: StackMap locals: int
StackMap stack:
iload 9
ifne 34
33: aconst_null
areturn
end local 9 end local 8 end local 4 34: StackMap locals: com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor java.lang.Class com.oracle.svm.core.annotate.TargetClass java.lang.String top int int java.lang.Class[]
StackMap stack:
iinc 5 1
StackMap locals:
StackMap stack:
35: iload 5
iload 6
if_icmplt 17
36: aload 0
getfield com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.imageClassLoader:Lcom/oracle/svm/hosted/ImageClassLoader;
aload 3
invokevirtual com.oracle.svm.hosted.ImageClassLoader.findClass:(Ljava/lang/String;)Lcom/oracle/svm/core/TypeResult;
invokevirtual com.oracle.svm.core.TypeResult.get:()Ljava/lang/Object;
checkcast java.lang.Class
astore 4
start local 4 37: aload 4
ifnonnull 41
38: ldc "Substitution target for %s is not loaded. Use field `onlyWith` in the `TargetClass` annotation to make substitution only active when needed."
iconst_1
anewarray java.lang.Object
dup
iconst_0
39: aload 1
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
aastore
40: invokestatic com.oracle.svm.core.util.UserError.abort:(Ljava/lang/String;[Ljava/lang/Object;)Lcom/oracle/svm/core/util/UserError$UserException;
athrow
41: StackMap locals: com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor java.lang.Class com.oracle.svm.core.annotate.TargetClass java.lang.String java.lang.Class
StackMap stack:
aload 2
invokeinterface com.oracle.svm.core.annotate.TargetClass.innerClass:()[Ljava/lang/String;
arraylength
ifle 52
42: aload 2
invokeinterface com.oracle.svm.core.annotate.TargetClass.innerClass:()[Ljava/lang/String;
dup
astore 8
arraylength
istore 7
iconst_0
istore 6
goto 51
StackMap locals: com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor java.lang.Class com.oracle.svm.core.annotate.TargetClass java.lang.String java.lang.Class top int int java.lang.String[]
StackMap stack:
43: aload 8
iload 6
aaload
astore 5
start local 5 44: aload 4
astore 9
start local 9 45: aload 9
aload 5
invokestatic com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.findInnerClass:(Ljava/lang/Class;Ljava/lang/String;)Ljava/lang/Class;
astore 4
46: aload 4
ifnonnull 50
47: ldc "Substitution target for %s is invalid as inner class %s in %s can not be found. Make sure that the inner class is present."
iconst_3
anewarray java.lang.Object
dup
iconst_0
48: aload 1
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
aastore
dup
iconst_1
aload 5
aastore
dup
iconst_2
aload 9
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
aastore
49: invokestatic com.oracle.svm.core.util.UserError.abort:(Ljava/lang/String;[Ljava/lang/Object;)Lcom/oracle/svm/core/util/UserError$UserException;
athrow
end local 9 end local 5 50: StackMap locals:
StackMap stack:
iinc 6 1
StackMap locals:
StackMap stack:
51: iload 6
iload 7
if_icmplt 43
52: StackMap locals: com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor java.lang.Class com.oracle.svm.core.annotate.TargetClass java.lang.String java.lang.Class
StackMap stack:
aload 4
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 53 0 this Lcom/oracle/svm/hosted/substitute/AnnotationSubstitutionProcessor;
0 53 1 annotatedBaseClass Ljava/lang/Class<*>;
0 53 2 target Lcom/oracle/svm/core/annotate/TargetClass;
6 7 3 className Ljava/lang/String;
9 10 3 className Ljava/lang/String;
16 53 3 className Ljava/lang/String;
11 12 4 ex Lcom/oracle/svm/util/ReflectionUtil$ReflectionUtilError;
18 34 4 onlyWithClass Ljava/lang/Class<*>;
19 20 8 onlyWithProvider Ljava/lang/Object;
22 34 8 onlyWithProvider Ljava/lang/Object;
21 22 9 ex Lcom/oracle/svm/util/ReflectionUtil$ReflectionUtilError;
24 25 9 onlyWithResult Z
28 29 9 onlyWithResult Z
32 34 9 onlyWithResult Z
27 28 10 onlyWithPredicate Ljava/util/function/Predicate<Ljava/lang/String;>;
37 53 4 holder Ljava/lang/Class<*>;
44 50 5 innerClass Ljava/lang/String;
45 50 9 prevHolder Ljava/lang/Class<*>;
Exception table:
from to target type
8 9 10 Class com.oracle.svm.util.ReflectionUtil$ReflectionUtilError
18 19 20 Class com.oracle.svm.util.ReflectionUtil$ReflectionUtilError
Signature: (Ljava/lang/Class<*>;Lcom/oracle/svm/core/annotate/TargetClass;)Ljava/lang/Class<*>;
MethodParameters:
Name Flags
annotatedBaseClass
target
private static java.lang.Class<?> findInnerClass(java.lang.Class<?>, java.lang.String);
descriptor: (Ljava/lang/Class;Ljava/lang/String;)Ljava/lang/Class;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=6, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual java.lang.Class.getDeclaredClasses:()[Ljava/lang/Class;
dup
astore 5
arraylength
istore 4
iconst_0
istore 3
goto 5
StackMap locals: java.lang.Class java.lang.String top int int java.lang.Class[]
StackMap stack:
1: aload 5
iload 3
aaload
astore 2
start local 2 2: aload 2
invokevirtual java.lang.Class.getSimpleName:()Ljava/lang/String;
aload 1
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 4
3: aload 2
areturn
end local 2 4: StackMap locals:
StackMap stack:
iinc 3 1
StackMap locals:
StackMap stack:
5: iload 3
iload 4
if_icmplt 1
6: aconst_null
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 outerClass Ljava/lang/Class<*>;
0 7 1 innerClassSimpleName Ljava/lang/String;
2 4 2 innerClass Ljava/lang/Class<*>;
Signature: (Ljava/lang/Class<*>;Ljava/lang/String;)Ljava/lang/Class<*>;
MethodParameters:
Name Flags
outerClass
innerClassSimpleName
private java.lang.Class<?> interceptParameterType(java.lang.Class<?>);
descriptor: (Ljava/lang/Class;)Ljava/lang/Class;
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=6, args_size=2
start local 0 start local 1 0: aload 0
aload 1
ldc Lcom/oracle/svm/core/annotate/TargetClass;
invokevirtual com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.lookupAnnotation:(Ljava/lang/reflect/AnnotatedElement;Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
checkcast com.oracle.svm.core.annotate.TargetClass
astore 2
start local 2 1: aload 2
ifnull 3
2: aload 0
aload 1
aload 2
invokevirtual com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.findTargetClass:(Ljava/lang/Class;Lcom/oracle/svm/core/annotate/TargetClass;)Ljava/lang/Class;
areturn
3: StackMap locals: com.oracle.svm.core.annotate.TargetClass
StackMap stack:
aload 1
invokevirtual java.lang.Class.isArray:()Z
ifeq 9
4: aload 1
invokevirtual java.lang.Class.getComponentType:()Ljava/lang/Class;
astore 3
start local 3 5: aload 0
aload 3
invokevirtual com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.interceptParameterType:(Ljava/lang/Class;)Ljava/lang/Class;
astore 4
start local 4 6: aload 4
aload 3
invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
ifne 9
7: aload 4
iconst_0
invokestatic java.lang.reflect.Array.newInstance:(Ljava/lang/Class;I)Ljava/lang/Object;
astore 5
start local 5 8: aload 5
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
areturn
end local 5 end local 4 end local 3 9: StackMap locals:
StackMap stack:
aload 1
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lcom/oracle/svm/hosted/substitute/AnnotationSubstitutionProcessor;
0 10 1 type Ljava/lang/Class<*>;
1 10 2 targetClassAnnotation Lcom/oracle/svm/core/annotate/TargetClass;
5 9 3 componentType Ljava/lang/Class<*>;
6 9 4 componentRet Ljava/lang/Class<*>;
8 9 5 tmp Ljava/lang/Object;
Signature: (Ljava/lang/Class<*>;)Ljava/lang/Class<*>;
MethodParameters:
Name Flags
type
private java.lang.Class<?>[] interceptParameterTypes(java.lang.Class<?>[]);
descriptor: ([Ljava/lang/Class;)[Ljava/lang/Class;
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=3, args_size=2
start local 0 start local 1 0: iconst_0
istore 2
start local 2 1: goto 4
2: StackMap locals: int
StackMap stack:
aload 1
iload 2
aload 0
aload 1
iload 2
aaload
invokevirtual com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.interceptParameterType:(Ljava/lang/Class;)Ljava/lang/Class;
aastore
3: iinc 2 1
StackMap locals:
StackMap stack:
4: iload 2
aload 1
arraylength
if_icmplt 2
end local 2 5: aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lcom/oracle/svm/hosted/substitute/AnnotationSubstitutionProcessor;
0 6 1 types [Ljava/lang/Class;
1 5 2 i I
Signature: ([Ljava/lang/Class<*>;)[Ljava/lang/Class<*>;
MethodParameters:
Name Flags
types
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=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: getstatic com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.$assertionsDisabled:Z
ifne 1
aload 1
instanceof java.lang.Class
ifne 1
aload 1
instanceof java.lang.reflect.Executable
ifne 1
aload 1
instanceof java.lang.reflect.Field
ifne 1
new java.lang.AssertionError
dup
aload 1
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
1: StackMap locals:
StackMap stack:
aload 1
aload 2
invokeinterface java.lang.reflect.AnnotatedElement.getAnnotation:(Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/oracle/svm/hosted/substitute/AnnotationSubstitutionProcessor;
0 2 1 element Ljava/lang/reflect/AnnotatedElement;
0 2 2 annotationClass Ljava/lang/Class<TT;>;
Signature: <T::Ljava/lang/annotation/Annotation;>(Ljava/lang/reflect/AnnotatedElement;Ljava/lang/Class<TT;>;)TT;
MethodParameters:
Name Flags
element
annotationClass
protected static java.lang.String deleteErrorMessage(java.lang.reflect.AnnotatedElement, com.oracle.svm.core.annotate.Delete, boolean);
descriptor: (Ljava/lang/reflect/AnnotatedElement;Lcom/oracle/svm/core/annotate/Delete;Z)Ljava/lang/String;
flags: (0x000c) ACC_PROTECTED, ACC_STATIC
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
invokeinterface com.oracle.svm.core.annotate.Delete.value:()Ljava/lang/String;
iload 2
invokestatic com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.deleteErrorMessage:(Ljava/lang/reflect/AnnotatedElement;Ljava/lang/String;Z)Ljava/lang/String;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 element Ljava/lang/reflect/AnnotatedElement;
0 1 1 deleteAnnotation Lcom/oracle/svm/core/annotate/Delete;
0 1 2 hosted Z
MethodParameters:
Name Flags
element
deleteAnnotation
hosted
public static java.lang.String deleteErrorMessage(java.lang.reflect.AnnotatedElement, java.lang.String, boolean);
descriptor: (Ljava/lang/reflect/AnnotatedElement;Ljava/lang/String;Z)Ljava/lang/String;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=5, args_size=3
start local 0 start local 1 start local 2 0: new java.lang.StringBuilder
dup
invokespecial java.lang.StringBuilder.<init>:()V
astore 3
start local 3 1: aload 3
ldc "Unsupported "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
2: aload 0
instanceof jdk.vm.ci.meta.ResolvedJavaField
ifeq 5
3: aload 3
ldc "field "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
checkcast jdk.vm.ci.meta.ResolvedJavaField
ldc "%H.%n"
invokeinterface jdk.vm.ci.meta.ResolvedJavaField.format:(Ljava/lang/String;)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
4: goto 16
StackMap locals: java.lang.StringBuilder
StackMap stack:
5: aload 0
instanceof jdk.vm.ci.meta.ResolvedJavaMethod
ifeq 12
6: aload 0
checkcast jdk.vm.ci.meta.ResolvedJavaMethod
astore 4
start local 4 7: aload 3
aload 4
invokeinterface jdk.vm.ci.meta.ResolvedJavaMethod.isConstructor:()Z
ifeq 8
ldc "constructor "
goto 9
StackMap locals: java.lang.reflect.AnnotatedElement java.lang.String int java.lang.StringBuilder jdk.vm.ci.meta.ResolvedJavaMethod
StackMap stack: java.lang.StringBuilder
8: ldc "method "
StackMap locals: java.lang.reflect.AnnotatedElement java.lang.String int java.lang.StringBuilder jdk.vm.ci.meta.ResolvedJavaMethod
StackMap stack: java.lang.StringBuilder java.lang.String
9: invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
10: aload 3
aload 4
ldc "%H.%n(%p)"
invokeinterface jdk.vm.ci.meta.ResolvedJavaMethod.format:(Ljava/lang/String;)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
end local 4 11: goto 16
StackMap locals:
StackMap stack:
12: aload 0
instanceof jdk.vm.ci.meta.ResolvedJavaType
ifeq 15
13: aload 3
ldc "type "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
checkcast jdk.vm.ci.meta.ResolvedJavaType
iconst_1
invokeinterface jdk.vm.ci.meta.ResolvedJavaType.toJavaName:(Z)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
14: goto 16
15: StackMap locals:
StackMap stack:
new java.lang.StringBuilder
dup
ldc "Unknown @Delete annotated element "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)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
16: StackMap locals:
StackMap stack:
aload 3
ldc " is reachable"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
17: aload 1
ifnull 19
aload 1
invokevirtual java.lang.String.isEmpty:()Z
ifne 19
18: aload 3
ldc ": "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
19: StackMap locals:
StackMap stack:
iload 2
ifeq 25
20: aload 3
invokestatic java.lang.System.lineSeparator:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "To diagnose the issue, you can add the option "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
21: getstatic com.oracle.svm.hosted.NativeImageOptions.ReportUnsupportedElementsAtRuntime:Lcom/oracle/svm/core/option/HostedOptionKey;
ldc "+"
invokestatic com.oracle.svm.core.option.SubstrateOptionsParser.commandArgument:(Lorg/graalvm/compiler/options/OptionKey;Ljava/lang/String;)Ljava/lang/String;
22: invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
23: ldc ". The unsupported element is then reported at run time when it is accessed the first time."
24: invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
25: StackMap locals:
StackMap stack:
aload 3
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 26 0 element Ljava/lang/reflect/AnnotatedElement;
0 26 1 message Ljava/lang/String;
0 26 2 hosted Z
1 26 3 result Ljava/lang/StringBuilder;
7 11 4 method Ljdk/vm/ci/meta/ResolvedJavaMethod;
MethodParameters:
Name Flags
element
message
hosted
static int[] $SWITCH_TABLE$com$oracle$svm$core$annotate$RecomputeFieldValue$Kind();
descriptor: ()[I
flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
Code:
stack=3, locals=1, args_size=0
0: getstatic com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.$SWITCH_TABLE$com$oracle$svm$core$annotate$RecomputeFieldValue$Kind:[I
dup
ifnull 1
areturn
StackMap locals:
StackMap stack: int[]
1: pop
invokestatic com.oracle.svm.core.annotate.RecomputeFieldValue$Kind.values:()[Lcom/oracle/svm/core/annotate/RecomputeFieldValue$Kind;
arraylength
newarray 10
astore 0
2: aload 0
getstatic com.oracle.svm.core.annotate.RecomputeFieldValue$Kind.ArrayBaseOffset:Lcom/oracle/svm/core/annotate/RecomputeFieldValue$Kind;
invokevirtual com.oracle.svm.core.annotate.RecomputeFieldValue$Kind.ordinal:()I
bipush 6
iastore
3: goto 5
StackMap locals: int[]
StackMap stack: java.lang.NoSuchFieldError
4: pop
StackMap locals:
StackMap stack:
5: aload 0
getstatic com.oracle.svm.core.annotate.RecomputeFieldValue$Kind.ArrayIndexScale:Lcom/oracle/svm/core/annotate/RecomputeFieldValue$Kind;
invokevirtual com.oracle.svm.core.annotate.RecomputeFieldValue$Kind.ordinal:()I
bipush 7
iastore
6: goto 8
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
7: pop
StackMap locals:
StackMap stack:
8: aload 0
getstatic com.oracle.svm.core.annotate.RecomputeFieldValue$Kind.ArrayIndexShift:Lcom/oracle/svm/core/annotate/RecomputeFieldValue$Kind;
invokevirtual com.oracle.svm.core.annotate.RecomputeFieldValue$Kind.ordinal:()I
bipush 8
iastore
9: goto 11
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
10: pop
StackMap locals:
StackMap stack:
11: aload 0
getstatic com.oracle.svm.core.annotate.RecomputeFieldValue$Kind.AtomicFieldUpdaterOffset:Lcom/oracle/svm/core/annotate/RecomputeFieldValue$Kind;
invokevirtual com.oracle.svm.core.annotate.RecomputeFieldValue$Kind.ordinal:()I
bipush 9
iastore
12: goto 14
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
13: pop
StackMap locals:
StackMap stack:
14: aload 0
getstatic com.oracle.svm.core.annotate.RecomputeFieldValue$Kind.Custom:Lcom/oracle/svm/core/annotate/RecomputeFieldValue$Kind;
invokevirtual com.oracle.svm.core.annotate.RecomputeFieldValue$Kind.ordinal:()I
bipush 12
iastore
15: goto 17
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
16: pop
StackMap locals:
StackMap stack:
17: aload 0
getstatic com.oracle.svm.core.annotate.RecomputeFieldValue$Kind.FieldOffset:Lcom/oracle/svm/core/annotate/RecomputeFieldValue$Kind;
invokevirtual com.oracle.svm.core.annotate.RecomputeFieldValue$Kind.ordinal:()I
iconst_5
iastore
18: goto 20
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
19: pop
StackMap locals:
StackMap stack:
20: aload 0
getstatic com.oracle.svm.core.annotate.RecomputeFieldValue$Kind.FromAlias:Lcom/oracle/svm/core/annotate/RecomputeFieldValue$Kind;
invokevirtual com.oracle.svm.core.annotate.RecomputeFieldValue$Kind.ordinal:()I
iconst_4
iastore
21: goto 23
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
22: pop
StackMap locals:
StackMap stack:
23: aload 0
getstatic com.oracle.svm.core.annotate.RecomputeFieldValue$Kind.Manual:Lcom/oracle/svm/core/annotate/RecomputeFieldValue$Kind;
invokevirtual com.oracle.svm.core.annotate.RecomputeFieldValue$Kind.ordinal:()I
bipush 11
iastore
24: goto 26
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
25: pop
StackMap locals:
StackMap stack:
26: aload 0
getstatic com.oracle.svm.core.annotate.RecomputeFieldValue$Kind.NewInstance:Lcom/oracle/svm/core/annotate/RecomputeFieldValue$Kind;
invokevirtual com.oracle.svm.core.annotate.RecomputeFieldValue$Kind.ordinal:()I
iconst_3
iastore
27: goto 29
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
28: pop
StackMap locals:
StackMap stack:
29: aload 0
getstatic com.oracle.svm.core.annotate.RecomputeFieldValue$Kind.None:Lcom/oracle/svm/core/annotate/RecomputeFieldValue$Kind;
invokevirtual com.oracle.svm.core.annotate.RecomputeFieldValue$Kind.ordinal:()I
iconst_1
iastore
30: goto 32
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
31: pop
StackMap locals:
StackMap stack:
32: aload 0
getstatic com.oracle.svm.core.annotate.RecomputeFieldValue$Kind.Reset:Lcom/oracle/svm/core/annotate/RecomputeFieldValue$Kind;
invokevirtual com.oracle.svm.core.annotate.RecomputeFieldValue$Kind.ordinal:()I
iconst_2
iastore
33: goto 35
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
34: pop
StackMap locals:
StackMap stack:
35: aload 0
getstatic com.oracle.svm.core.annotate.RecomputeFieldValue$Kind.TranslateFieldOffset:Lcom/oracle/svm/core/annotate/RecomputeFieldValue$Kind;
invokevirtual com.oracle.svm.core.annotate.RecomputeFieldValue$Kind.ordinal:()I
bipush 10
iastore
36: goto 38
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
37: pop
StackMap locals:
StackMap stack:
38: aload 0
dup
putstatic com.oracle.svm.hosted.substitute.AnnotationSubstitutionProcessor.$SWITCH_TABLE$com$oracle$svm$core$annotate$RecomputeFieldValue$Kind:[I
areturn
LocalVariableTable:
Start End Slot Name Signature
Exception table:
from to target type
2 3 4 Class java.lang.NoSuchFieldError
5 6 7 Class java.lang.NoSuchFieldError
8 9 10 Class java.lang.NoSuchFieldError
11 12 13 Class java.lang.NoSuchFieldError
14 15 16 Class java.lang.NoSuchFieldError
17 18 19 Class java.lang.NoSuchFieldError
20 21 22 Class java.lang.NoSuchFieldError
23 24 25 Class java.lang.NoSuchFieldError
26 27 28 Class java.lang.NoSuchFieldError
29 30 31 Class java.lang.NoSuchFieldError
32 33 34 Class java.lang.NoSuchFieldError
35 36 37 Class java.lang.NoSuchFieldError
private static jdk.vm.ci.meta.ResolvedJavaField lambda$1(jdk.vm.ci.meta.ResolvedJavaField, jdk.vm.ci.meta.ResolvedJavaField, jdk.vm.ci.meta.ResolvedJavaField, jdk.vm.ci.meta.ResolvedJavaField);
descriptor: (Ljdk/vm/ci/meta/ResolvedJavaField;Ljdk/vm/ci/meta/ResolvedJavaField;Ljdk/vm/ci/meta/ResolvedJavaField;Ljdk/vm/ci/meta/ResolvedJavaField;)Ljdk/vm/ci/meta/ResolvedJavaField;
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=2, locals=4, args_size=4
start local 2 start local 3 0: aload 3
aload 0
invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
ifeq 1
aload 1
goto 2
StackMap locals:
StackMap stack:
1: aload 3
StackMap locals:
StackMap stack: jdk.vm.ci.meta.ResolvedJavaField
2: areturn
end local 3 end local 2 LocalVariableTable:
Start End Slot Name Signature
0 3 2 key Ljdk/vm/ci/meta/ResolvedJavaField;
0 3 3 value Ljdk/vm/ci/meta/ResolvedJavaField;
}
SourceFile: "AnnotationSubstitutionProcessor.java"
InnerClasses:
public final Kind = com.oracle.svm.core.annotate.RecomputeFieldValue$Kind of com.oracle.svm.core.annotate.RecomputeFieldValue
public abstract NoClassNameProvider = com.oracle.svm.core.annotate.TargetClass$NoClassNameProvider of com.oracle.svm.core.annotate.TargetClass
public UserException = com.oracle.svm.core.util.UserError$UserException of com.oracle.svm.core.util.UserError
public final ReflectionUtilError = com.oracle.svm.util.ReflectionUtil$ReflectionUtilError of com.oracle.svm.util.ReflectionUtil
public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles