public class com.oracle.svm.reflect.hosted.ReflectionDataBuilder implements org.graalvm.nativeimage.impl.RuntimeReflectionSupport
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: com.oracle.svm.reflect.hosted.ReflectionDataBuilder
super_class: java.lang.Object
{
public static final java.lang.reflect.Field[] EMPTY_FIELDS;
descriptor: [Ljava/lang/reflect/Field;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
public static final java.lang.reflect.Method[] EMPTY_METHODS;
descriptor: [Ljava/lang/reflect/Method;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
public static final java.lang.reflect.Constructor<?>[] EMPTY_CONSTRUCTORS;
descriptor: [Ljava/lang/reflect/Constructor;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
Signature: [Ljava/lang/reflect/Constructor<*>;
public static final java.lang.Class<?>[] EMPTY_CLASSES;
descriptor: [Ljava/lang/Class;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
Signature: [Ljava/lang/Class<*>;
private boolean modified;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private boolean sealed;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private final com.oracle.svm.core.hub.DynamicHub$ReflectionData arrayReflectionData;
descriptor: Lcom/oracle/svm/core/hub/DynamicHub$ReflectionData;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.util.Set<java.lang.Class<?>> reflectionClasses;
descriptor: Ljava/util/Set;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/Set<Ljava/lang/Class<*>;>;
private final java.util.Set<java.lang.reflect.Executable> reflectionMethods;
descriptor: Ljava/util/Set;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/Set<Ljava/lang/reflect/Executable;>;
private final java.util.Map<java.lang.reflect.Field, java.util.EnumSet<com.oracle.svm.reflect.hosted.ReflectionDataBuilder$FieldFlag>> reflectionFields;
descriptor: Ljava/util/Map;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/Map<Ljava/lang/reflect/Field;Ljava/util/EnumSet<Lcom/oracle/svm/reflect/hosted/ReflectionDataBuilder$FieldFlag;>;>;
private final java.util.Set<java.lang.reflect.Field> analyzedFinalFields;
descriptor: Ljava/util/Set;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/Set<Ljava/lang/reflect/Field;>;
private final java.util.Set<java.lang.Class<?>> processedClasses;
descriptor: Ljava/util/Set;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/Set<Ljava/lang/Class<*>;>;
private final com.oracle.svm.reflect.hosted.ReflectionDataBuilder$ReflectionDataAccessors accessors;
descriptor: Lcom/oracle/svm/reflect/hosted/ReflectionDataBuilder$ReflectionDataAccessors;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
static final boolean $assertionsDisabled;
descriptor: Z
flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: ldc Lcom/oracle/svm/reflect/hosted/ReflectionDataBuilder;
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.reflect.hosted.ReflectionDataBuilder.$assertionsDisabled:Z
3: iconst_0
anewarray java.lang.reflect.Field
putstatic com.oracle.svm.reflect.hosted.ReflectionDataBuilder.EMPTY_FIELDS:[Ljava/lang/reflect/Field;
4: iconst_0
anewarray java.lang.reflect.Method
putstatic com.oracle.svm.reflect.hosted.ReflectionDataBuilder.EMPTY_METHODS:[Ljava/lang/reflect/Method;
5: iconst_0
anewarray java.lang.reflect.Constructor
putstatic com.oracle.svm.reflect.hosted.ReflectionDataBuilder.EMPTY_CONSTRUCTORS:[Ljava/lang/reflect/Constructor;
6: iconst_0
anewarray java.lang.Class
putstatic com.oracle.svm.reflect.hosted.ReflectionDataBuilder.EMPTY_CLASSES:[Ljava/lang/Class;
return
LocalVariableTable:
Start End Slot Name Signature
public void <init>(com.oracle.svm.hosted.FeatureImpl$DuringSetupAccessImpl);
descriptor: (Lcom/oracle/svm/hosted/FeatureImpl$DuringSetupAccessImpl;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
new java.util.concurrent.ConcurrentHashMap
dup
invokespecial java.util.concurrent.ConcurrentHashMap.<init>:()V
invokestatic java.util.Collections.newSetFromMap:(Ljava/util/Map;)Ljava/util/Set;
putfield com.oracle.svm.reflect.hosted.ReflectionDataBuilder.reflectionClasses:Ljava/util/Set;
2: aload 0
new java.util.concurrent.ConcurrentHashMap
dup
invokespecial java.util.concurrent.ConcurrentHashMap.<init>:()V
invokestatic java.util.Collections.newSetFromMap:(Ljava/util/Map;)Ljava/util/Set;
putfield com.oracle.svm.reflect.hosted.ReflectionDataBuilder.reflectionMethods:Ljava/util/Set;
3: aload 0
new java.util.concurrent.ConcurrentHashMap
dup
invokespecial java.util.concurrent.ConcurrentHashMap.<init>:()V
putfield com.oracle.svm.reflect.hosted.ReflectionDataBuilder.reflectionFields:Ljava/util/Map;
4: aload 0
new java.util.concurrent.ConcurrentHashMap
dup
invokespecial java.util.concurrent.ConcurrentHashMap.<init>:()V
invokestatic java.util.Collections.newSetFromMap:(Ljava/util/Map;)Ljava/util/Set;
putfield com.oracle.svm.reflect.hosted.ReflectionDataBuilder.analyzedFinalFields:Ljava/util/Set;
5: aload 0
new java.util.HashSet
dup
invokespecial java.util.HashSet.<init>:()V
putfield com.oracle.svm.reflect.hosted.ReflectionDataBuilder.processedClasses:Ljava/util/Set;
6: aload 0
invokestatic com.oracle.svm.reflect.hosted.ReflectionDataBuilder.getArrayReflectionData:()Lcom/oracle/svm/core/hub/DynamicHub$ReflectionData;
putfield com.oracle.svm.reflect.hosted.ReflectionDataBuilder.arrayReflectionData:Lcom/oracle/svm/core/hub/DynamicHub$ReflectionData;
7: aload 0
new com.oracle.svm.reflect.hosted.ReflectionDataBuilder$ReflectionDataAccessors
dup
aload 1
invokespecial com.oracle.svm.reflect.hosted.ReflectionDataBuilder$ReflectionDataAccessors.<init>:(Lcom/oracle/svm/hosted/FeatureImpl$DuringSetupAccessImpl;)V
putfield com.oracle.svm.reflect.hosted.ReflectionDataBuilder.accessors:Lcom/oracle/svm/reflect/hosted/ReflectionDataBuilder$ReflectionDataAccessors;
8: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lcom/oracle/svm/reflect/hosted/ReflectionDataBuilder;
0 9 1 access Lcom/oracle/svm/hosted/FeatureImpl$DuringSetupAccessImpl;
MethodParameters:
Name Flags
access
private static com.oracle.svm.core.hub.DynamicHub$ReflectionData getArrayReflectionData();
descriptor: ()Lcom/oracle/svm/core/hub/DynamicHub$ReflectionData;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=15, locals=2, args_size=0
0: ldc Ljava/lang/Class;
ldc "privateGetPublicMethods"
iconst_0
anewarray java.lang.Class
invokestatic com.oracle.svm.util.ReflectionUtil.lookupMethod:(Ljava/lang/Class;Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
astore 1
start local 1 1: aload 1
ldc [Ljava/lang/Object;
iconst_0
anewarray java.lang.Object
invokevirtual java.lang.reflect.Method.invoke:(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.reflect.Method[]
astore 0
end local 1 start local 0 2: goto 5
end local 0 StackMap locals:
StackMap stack: java.lang.ReflectiveOperationException
3: astore 1
start local 1 4: aload 1
invokestatic com.oracle.svm.core.util.VMError.shouldNotReachHere:(Ljava/lang/Throwable;)Ljava/lang/RuntimeException;
athrow
end local 1 start local 0 5: StackMap locals: java.lang.reflect.Method[]
StackMap stack:
new com.oracle.svm.core.hub.DynamicHub$ReflectionData
dup
6: getstatic com.oracle.svm.reflect.hosted.ReflectionDataBuilder.EMPTY_FIELDS:[Ljava/lang/reflect/Field;
7: getstatic com.oracle.svm.reflect.hosted.ReflectionDataBuilder.EMPTY_FIELDS:[Ljava/lang/reflect/Field;
8: getstatic com.oracle.svm.reflect.hosted.ReflectionDataBuilder.EMPTY_FIELDS:[Ljava/lang/reflect/Field;
9: getstatic com.oracle.svm.reflect.hosted.ReflectionDataBuilder.EMPTY_METHODS:[Ljava/lang/reflect/Method;
10: aload 0
11: getstatic com.oracle.svm.reflect.hosted.ReflectionDataBuilder.EMPTY_CONSTRUCTORS:[Ljava/lang/reflect/Constructor;
12: getstatic com.oracle.svm.reflect.hosted.ReflectionDataBuilder.EMPTY_CONSTRUCTORS:[Ljava/lang/reflect/Constructor;
13: aconst_null
14: getstatic com.oracle.svm.reflect.hosted.ReflectionDataBuilder.EMPTY_FIELDS:[Ljava/lang/reflect/Field;
15: getstatic com.oracle.svm.reflect.hosted.ReflectionDataBuilder.EMPTY_METHODS:[Ljava/lang/reflect/Method;
16: getstatic com.oracle.svm.reflect.hosted.ReflectionDataBuilder.EMPTY_CLASSES:[Ljava/lang/Class;
17: getstatic com.oracle.svm.reflect.hosted.ReflectionDataBuilder.EMPTY_CLASSES:[Ljava/lang/Class;
18: aconst_null
19: invokespecial com.oracle.svm.core.hub.DynamicHub$ReflectionData.<init>:([Ljava/lang/reflect/Field;[Ljava/lang/reflect/Field;[Ljava/lang/reflect/Field;[Ljava/lang/reflect/Method;[Ljava/lang/reflect/Method;[Ljava/lang/reflect/Constructor;[Ljava/lang/reflect/Constructor;Ljava/lang/reflect/Constructor;[Ljava/lang/reflect/Field;[Ljava/lang/reflect/Method;[Ljava/lang/Class;[Ljava/lang/Class;Ljava/lang/reflect/Executable;)V
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
2 3 0 publicArrayMethods [Ljava/lang/reflect/Method;
5 20 0 publicArrayMethods [Ljava/lang/reflect/Method;
1 2 1 getPublicMethodsMethod Ljava/lang/reflect/Method;
4 5 1 e Ljava/lang/ReflectiveOperationException;
Exception table:
from to target type
0 2 3 Class java.lang.ReflectiveOperationException
public void register(java.lang.Class<?>[]);
descriptor: ([Ljava/lang/Class;)V
flags: (0x0081) ACC_PUBLIC, ACC_VARARGS
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual com.oracle.svm.reflect.hosted.ReflectionDataBuilder.checkNotSealed:()V
1: aload 0
getfield com.oracle.svm.reflect.hosted.ReflectionDataBuilder.reflectionClasses:Ljava/util/Set;
aload 1
invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
invokeinterface java.util.Set.addAll:(Ljava/util/Collection;)Z
ifeq 3
2: aload 0
iconst_1
putfield com.oracle.svm.reflect.hosted.ReflectionDataBuilder.modified:Z
3: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/oracle/svm/reflect/hosted/ReflectionDataBuilder;
0 4 1 classes [Ljava/lang/Class;
Signature: ([Ljava/lang/Class<*>;)V
MethodParameters:
Name Flags
classes
public void register(java.lang.reflect.Executable[]);
descriptor: ([Ljava/lang/reflect/Executable;)V
flags: (0x0081) ACC_PUBLIC, ACC_VARARGS
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual com.oracle.svm.reflect.hosted.ReflectionDataBuilder.checkNotSealed:()V
1: aload 0
getfield com.oracle.svm.reflect.hosted.ReflectionDataBuilder.reflectionMethods:Ljava/util/Set;
aload 1
invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
invokeinterface java.util.Set.addAll:(Ljava/util/Collection;)Z
ifeq 3
2: aload 0
iconst_1
putfield com.oracle.svm.reflect.hosted.ReflectionDataBuilder.modified:Z
3: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/oracle/svm/reflect/hosted/ReflectionDataBuilder;
0 4 1 methods [Ljava/lang/reflect/Executable;
MethodParameters:
Name Flags
methods
public void register(boolean, boolean, java.lang.reflect.Field[]);
descriptor: (ZZ[Ljava/lang/reflect/Field;)V
flags: (0x0081) ACC_PUBLIC, ACC_VARARGS
Code:
stack=6, locals=9, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
invokevirtual com.oracle.svm.reflect.hosted.ReflectionDataBuilder.checkNotSealed:()V
1: aload 3
dup
astore 7
arraylength
istore 6
iconst_0
istore 5
goto 10
StackMap locals: com.oracle.svm.reflect.hosted.ReflectionDataBuilder int int java.lang.reflect.Field[] top int int java.lang.reflect.Field[]
StackMap stack:
2: aload 7
iload 5
aaload
astore 4
start local 4 3: ldc Lcom/oracle/svm/reflect/hosted/ReflectionDataBuilder$FieldFlag;
invokestatic java.util.EnumSet.noneOf:(Ljava/lang/Class;)Ljava/util/EnumSet;
astore 8
start local 8 4: iload 1
ifeq 6
5: aload 8
getstatic com.oracle.svm.reflect.hosted.ReflectionDataBuilder$FieldFlag.FINAL_BUT_WRITABLE:Lcom/oracle/svm/reflect/hosted/ReflectionDataBuilder$FieldFlag;
invokevirtual java.util.EnumSet.add:(Ljava/lang/Object;)Z
pop
6: StackMap locals: com.oracle.svm.reflect.hosted.ReflectionDataBuilder int int java.lang.reflect.Field[] java.lang.reflect.Field int int java.lang.reflect.Field[] java.util.EnumSet
StackMap stack:
iload 2
ifeq 8
7: aload 8
getstatic com.oracle.svm.reflect.hosted.ReflectionDataBuilder$FieldFlag.UNSAFE_ACCESSIBLE:Lcom/oracle/svm/reflect/hosted/ReflectionDataBuilder$FieldFlag;
invokevirtual java.util.EnumSet.add:(Ljava/lang/Object;)Z
pop
8: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.svm.reflect.hosted.ReflectionDataBuilder.reflectionFields:Ljava/util/Map;
aload 4
aload 0
aload 8
iload 1
aload 4
invokedynamic apply(Lcom/oracle/svm/reflect/hosted/ReflectionDataBuilder;Ljava/util/EnumSet;ZLjava/lang/reflect/Field;)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/reflect/hosted/ReflectionDataBuilder.lambda$0(Ljava/util/EnumSet;ZLjava/lang/reflect/Field;Ljava/lang/reflect/Field;Ljava/util/EnumSet;)Ljava/util/EnumSet; (7)
(Ljava/lang/reflect/Field;Ljava/util/EnumSet;)Ljava/util/EnumSet;
invokeinterface java.util.Map.compute:(Ljava/lang/Object;Ljava/util/function/BiFunction;)Ljava/lang/Object;
pop
end local 8 end local 4 9: iinc 5 1
StackMap locals: com.oracle.svm.reflect.hosted.ReflectionDataBuilder int int java.lang.reflect.Field[] top int int java.lang.reflect.Field[]
StackMap stack:
10: iload 5
iload 6
if_icmplt 2
11: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Lcom/oracle/svm/reflect/hosted/ReflectionDataBuilder;
0 12 1 finalIsWritable Z
0 12 2 allowUnsafeAccess Z
0 12 3 fields [Ljava/lang/reflect/Field;
3 9 4 field Ljava/lang/reflect/Field;
4 9 8 flags Ljava/util/EnumSet<Lcom/oracle/svm/reflect/hosted/ReflectionDataBuilder$FieldFlag;>;
MethodParameters:
Name Flags
finalIsWritable
allowUnsafeAccess
fields
private void checkNotSealed();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield com.oracle.svm.reflect.hosted.ReflectionDataBuilder.sealed:Z
ifeq 2
1: ldc "Too late to add classes, methods, and fields for reflective access. Registration must happen in a Feature before the analysis has finished."
iconst_0
anewarray java.lang.Object
invokestatic com.oracle.svm.core.util.UserError.abort:(Ljava/lang/String;[Ljava/lang/Object;)Lcom/oracle/svm/core/util/UserError$UserException;
athrow
2: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/oracle/svm/reflect/hosted/ReflectionDataBuilder;
protected void duringAnalysis(org.graalvm.nativeimage.hosted.Feature$DuringAnalysisAccess);
descriptor: (Lorg/graalvm/nativeimage/hosted/Feature$DuringAnalysisAccess;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 1
checkcast com.oracle.svm.hosted.FeatureImpl$DuringAnalysisAccessImpl
astore 2
start local 2 1: aload 0
aload 2
invokevirtual com.oracle.svm.reflect.hosted.ReflectionDataBuilder.processReachableTypes:(Lcom/oracle/svm/hosted/FeatureImpl$DuringAnalysisAccessImpl;)V
2: aload 0
aload 2
invokevirtual com.oracle.svm.reflect.hosted.ReflectionDataBuilder.processRegisteredElements:(Lcom/oracle/svm/hosted/FeatureImpl$DuringAnalysisAccessImpl;)V
3: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/oracle/svm/reflect/hosted/ReflectionDataBuilder;
0 4 1 a Lorg/graalvm/nativeimage/hosted/Feature$DuringAnalysisAccess;
1 4 2 access Lcom/oracle/svm/hosted/FeatureImpl$DuringAnalysisAccessImpl;
MethodParameters:
Name Flags
a
private void processReachableTypes(com.oracle.svm.hosted.FeatureImpl$DuringAnalysisAccessImpl);
descriptor: (Lcom/oracle/svm/hosted/FeatureImpl$DuringAnalysisAccessImpl;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=5, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual com.oracle.svm.hosted.FeatureImpl$DuringAnalysisAccessImpl.getUniverse:()Lcom/oracle/graal/pointsto/meta/AnalysisUniverse;
invokevirtual com.oracle.graal.pointsto.meta.AnalysisUniverse.getTypes:()Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 3
goto 12
StackMap locals: com.oracle.svm.reflect.hosted.ReflectionDataBuilder com.oracle.svm.hosted.FeatureImpl$DuringAnalysisAccessImpl top java.util.Iterator
StackMap stack:
1: aload 3
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.oracle.graal.pointsto.meta.AnalysisType
astore 2
start local 2 2: aload 2
invokevirtual com.oracle.graal.pointsto.meta.AnalysisType.getJavaClass:()Ljava/lang/Class;
astore 4
start local 4 3: aload 4
ifnull 12
4: aload 0
getfield com.oracle.svm.reflect.hosted.ReflectionDataBuilder.processedClasses:Ljava/util/Set;
aload 4
invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
ifeq 6
5: goto 12
6: StackMap locals: com.oracle.svm.reflect.hosted.ReflectionDataBuilder com.oracle.svm.hosted.FeatureImpl$DuringAnalysisAccessImpl com.oracle.graal.pointsto.meta.AnalysisType java.util.Iterator java.lang.Class
StackMap stack:
aload 2
invokevirtual com.oracle.graal.pointsto.meta.AnalysisType.isArray:()Z
ifeq 8
aload 1
aload 2
invokevirtual com.oracle.svm.hosted.FeatureImpl$DuringAnalysisAccessImpl.isReachable:(Lcom/oracle/graal/pointsto/meta/AnalysisType;)Z
ifne 8
7: goto 12
8: StackMap locals:
StackMap stack:
aload 2
invokevirtual com.oracle.graal.pointsto.meta.AnalysisType.isArray:()Z
ifne 9
aload 0
aload 4
invokevirtual com.oracle.svm.reflect.hosted.ReflectionDataBuilder.enclosingMethodOrConstructor:(Ljava/lang/Class;)Ljava/lang/reflect/Executable;
ifnull 12
9: StackMap locals:
StackMap stack:
aload 0
aload 1
aload 4
invokevirtual com.oracle.svm.reflect.hosted.ReflectionDataBuilder.processClass:(Lcom/oracle/svm/hosted/FeatureImpl$DuringAnalysisAccessImpl;Ljava/lang/Class;)V
10: aload 0
getfield com.oracle.svm.reflect.hosted.ReflectionDataBuilder.processedClasses:Ljava/util/Set;
aload 4
invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
pop
11: aload 1
invokevirtual com.oracle.svm.hosted.FeatureImpl$DuringAnalysisAccessImpl.requireAnalysisIteration:()V
end local 4 end local 2 12: StackMap locals: com.oracle.svm.reflect.hosted.ReflectionDataBuilder com.oracle.svm.hosted.FeatureImpl$DuringAnalysisAccessImpl top java.util.Iterator
StackMap stack:
aload 3
invokeinterface java.util.Iterator.hasNext:()Z
ifne 1
13: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 this Lcom/oracle/svm/reflect/hosted/ReflectionDataBuilder;
0 14 1 access Lcom/oracle/svm/hosted/FeatureImpl$DuringAnalysisAccessImpl;
2 12 2 type Lcom/oracle/graal/pointsto/meta/AnalysisType;
3 12 4 originalClass Ljava/lang/Class<*>;
MethodParameters:
Name Flags
access
private void processRegisteredElements(com.oracle.svm.hosted.FeatureImpl$DuringAnalysisAccessImpl);
descriptor: (Lcom/oracle/svm/hosted/FeatureImpl$DuringAnalysisAccessImpl;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield com.oracle.svm.reflect.hosted.ReflectionDataBuilder.modified:Z
ifne 2
1: return
2: StackMap locals:
StackMap stack:
aload 0
iconst_0
putfield com.oracle.svm.reflect.hosted.ReflectionDataBuilder.modified:Z
3: aload 1
invokevirtual com.oracle.svm.hosted.FeatureImpl$DuringAnalysisAccessImpl.requireAnalysisIteration:()V
4: new java.util.HashSet
dup
aload 0
getfield com.oracle.svm.reflect.hosted.ReflectionDataBuilder.reflectionClasses:Ljava/util/Set;
invokespecial java.util.HashSet.<init>:(Ljava/util/Collection;)V
astore 2
start local 2 5: aload 0
getfield com.oracle.svm.reflect.hosted.ReflectionDataBuilder.reflectionMethods:Ljava/util/Set;
invokeinterface java.util.Set.stream:()Ljava/util/stream/Stream;
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/reflect/Executable.getDeclaringClass()Ljava/lang/Class; (5)
(Ljava/lang/reflect/Executable;)Ljava/lang/Class;
invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
aload 2
dup
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
pop
invokedynamic accept(Ljava/util/Set;)Ljava/util/function/Consumer;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(Ljava/lang/Object;)V
java/util/Set.add(Ljava/lang/Object;)Z (9 itf)
(Ljava/lang/Class;)V
invokeinterface java.util.stream.Stream.forEach:(Ljava/util/function/Consumer;)V
6: aload 0
getfield com.oracle.svm.reflect.hosted.ReflectionDataBuilder.reflectionFields:Ljava/util/Map;
aload 1
aload 2
invokedynamic accept(Lcom/oracle/svm/hosted/FeatureImpl$DuringAnalysisAccessImpl;Ljava/util/Set;)Ljava/util/function/BiConsumer;
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;)V
com/oracle/svm/reflect/hosted/ReflectionDataBuilder.lambda$3(Lcom/oracle/svm/hosted/FeatureImpl$DuringAnalysisAccessImpl;Ljava/util/Set;Ljava/lang/reflect/Field;Ljava/util/EnumSet;)V (6)
(Ljava/lang/reflect/Field;Ljava/util/EnumSet;)V
invokeinterface java.util.Map.forEach:(Ljava/util/function/BiConsumer;)V
7: aload 2
aload 0
aload 1
invokedynamic accept(Lcom/oracle/svm/reflect/hosted/ReflectionDataBuilder;Lcom/oracle/svm/hosted/FeatureImpl$DuringAnalysisAccessImpl;)Ljava/util/function/Consumer;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(Ljava/lang/Object;)V
com/oracle/svm/reflect/hosted/ReflectionDataBuilder.lambda$4(Lcom/oracle/svm/hosted/FeatureImpl$DuringAnalysisAccessImpl;Ljava/lang/Class;)V (7)
(Ljava/lang/Class;)V
invokeinterface java.util.Set.forEach:(Ljava/util/function/Consumer;)V
8: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lcom/oracle/svm/reflect/hosted/ReflectionDataBuilder;
0 9 1 access Lcom/oracle/svm/hosted/FeatureImpl$DuringAnalysisAccessImpl;
5 9 2 allClasses Ljava/util/Set<Ljava/lang/Class<*>;>;
MethodParameters:
Name Flags
access
private void processClass(com.oracle.svm.hosted.FeatureImpl$DuringAnalysisAccessImpl, java.lang.Class<?>);
descriptor: (Lcom/oracle/svm/hosted/FeatureImpl$DuringAnalysisAccessImpl;Ljava/lang/Class;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=16, locals=7, args_size=3
start local 0 start local 1 start local 2 0: aload 1
invokevirtual com.oracle.svm.hosted.FeatureImpl$DuringAnalysisAccessImpl.getMetaAccess:()Lcom/oracle/graal/pointsto/meta/AnalysisMetaAccess;
aload 2
invokevirtual com.oracle.graal.pointsto.meta.AnalysisMetaAccess.lookupJavaType:(Ljava/lang/Class;)Lcom/oracle/graal/pointsto/meta/AnalysisType;
astore 3
start local 3 1: aload 3
invokevirtual com.oracle.graal.pointsto.meta.AnalysisType.registerAsReachable:()V
2: aload 1
invokevirtual com.oracle.svm.hosted.FeatureImpl$DuringAnalysisAccessImpl.getHostVM:()Lcom/oracle/svm/hosted/SVMHost;
aload 3
invokevirtual com.oracle.svm.hosted.SVMHost.dynamicHub:(Ljdk/vm/ci/meta/ResolvedJavaType;)Lcom/oracle/svm/core/hub/DynamicHub;
astore 4
start local 4 3: aload 0
getfield com.oracle.svm.reflect.hosted.ReflectionDataBuilder.reflectionClasses:Ljava/util/Set;
aload 2
invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
ifeq 5
4: aload 2
invokestatic com.oracle.svm.core.hub.ClassForNameSupport.registerClass:(Ljava/lang/Class;)V
5: StackMap locals: com.oracle.graal.pointsto.meta.AnalysisType com.oracle.svm.core.hub.DynamicHub
StackMap stack:
aload 2
invokevirtual java.lang.Class.getDeclaredFields:()[Ljava/lang/reflect/Field;
pop
6: aload 2
invokevirtual java.lang.Class.getFields:()[Ljava/lang/reflect/Field;
pop
7: aload 2
invokevirtual java.lang.Class.getDeclaredMethods:()[Ljava/lang/reflect/Method;
pop
8: aload 2
invokevirtual java.lang.Class.getMethods:()[Ljava/lang/reflect/Method;
pop
9: aload 2
invokevirtual java.lang.Class.getDeclaredConstructors:()[Ljava/lang/reflect/Constructor;
pop
10: aload 2
invokevirtual java.lang.Class.getConstructors:()[Ljava/lang/reflect/Constructor;
pop
11: aload 2
invokevirtual java.lang.Class.getDeclaredClasses:()[Ljava/lang/Class;
pop
12: aload 2
invokevirtual java.lang.Class.getClasses:()[Ljava/lang/Class;
pop
13: goto 19
StackMap locals:
StackMap stack: java.lang.Throwable
14: astore 5
start local 5 15: getstatic java.lang.System.out:Ljava/io/PrintStream;
new java.lang.StringBuilder
dup
ldc "WARNING: Could not register reflection metadata for "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 2
invokevirtual java.lang.Class.getTypeName:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
16: ldc ". Reason: "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 5
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
invokevirtual java.lang.Class.getTypeName:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc ": "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 5
invokevirtual java.lang.Throwable.getMessage:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
bipush 46
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
17: invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
18: return
end local 5 19: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.svm.reflect.hosted.ReflectionDataBuilder.accessors:Lcom/oracle/svm/reflect/hosted/ReflectionDataBuilder$ReflectionDataAccessors;
aload 2
invokevirtual com.oracle.svm.reflect.hosted.ReflectionDataBuilder$ReflectionDataAccessors.getReflectionData:(Ljava/lang/Class;)Ljava/lang/Object;
astore 5
start local 5 20: aload 3
invokevirtual com.oracle.graal.pointsto.meta.AnalysisType.isArray:()Z
ifeq 23
21: aload 0
getfield com.oracle.svm.reflect.hosted.ReflectionDataBuilder.arrayReflectionData:Lcom/oracle/svm/core/hub/DynamicHub$ReflectionData;
astore 6
start local 6 22: goto 38
end local 6 23: StackMap locals: java.lang.Object
StackMap stack:
new com.oracle.svm.core.hub.DynamicHub$ReflectionData
dup
24: aload 0
getfield com.oracle.svm.reflect.hosted.ReflectionDataBuilder.accessors:Lcom/oracle/svm/reflect/hosted/ReflectionDataBuilder$ReflectionDataAccessors;
aload 5
invokevirtual com.oracle.svm.reflect.hosted.ReflectionDataBuilder$ReflectionDataAccessors.getDeclaredFields:(Ljava/lang/Object;)Ljava/lang/Object;
aload 0
getfield com.oracle.svm.reflect.hosted.ReflectionDataBuilder.reflectionFields:Ljava/util/Map;
invokeinterface java.util.Map.keySet:()Ljava/util/Set;
aload 1
invokevirtual com.oracle.svm.hosted.FeatureImpl$DuringAnalysisAccessImpl.getMetaAccess:()Lcom/oracle/graal/pointsto/meta/AnalysisMetaAccess;
invokestatic com.oracle.svm.reflect.hosted.ReflectionDataBuilder.filterFields:(Ljava/lang/Object;Ljava/util/Set;Lcom/oracle/graal/pointsto/meta/AnalysisMetaAccess;)[Ljava/lang/reflect/Field;
25: aload 0
getfield com.oracle.svm.reflect.hosted.ReflectionDataBuilder.accessors:Lcom/oracle/svm/reflect/hosted/ReflectionDataBuilder$ReflectionDataAccessors;
aload 5
invokevirtual com.oracle.svm.reflect.hosted.ReflectionDataBuilder$ReflectionDataAccessors.getPublicFields:(Ljava/lang/Object;)Ljava/lang/Object;
aload 0
getfield com.oracle.svm.reflect.hosted.ReflectionDataBuilder.reflectionFields:Ljava/util/Map;
invokeinterface java.util.Map.keySet:()Ljava/util/Set;
aload 1
invokevirtual com.oracle.svm.hosted.FeatureImpl$DuringAnalysisAccessImpl.getMetaAccess:()Lcom/oracle/graal/pointsto/meta/AnalysisMetaAccess;
invokestatic com.oracle.svm.reflect.hosted.ReflectionDataBuilder.filterFields:(Ljava/lang/Object;Ljava/util/Set;Lcom/oracle/graal/pointsto/meta/AnalysisMetaAccess;)[Ljava/lang/reflect/Field;
26: aload 0
getfield com.oracle.svm.reflect.hosted.ReflectionDataBuilder.accessors:Lcom/oracle/svm/reflect/hosted/ReflectionDataBuilder$ReflectionDataAccessors;
aload 5
invokevirtual com.oracle.svm.reflect.hosted.ReflectionDataBuilder$ReflectionDataAccessors.getPublicFields:(Ljava/lang/Object;)Ljava/lang/Object;
aload 0
aload 2
invokedynamic test(Lcom/oracle/svm/reflect/hosted/ReflectionDataBuilder;Ljava/lang/Class;)Ljava/util/function/Predicate;
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;)Z
com/oracle/svm/reflect/hosted/ReflectionDataBuilder.lambda$5(Ljava/lang/Class;Ljava/lang/reflect/Field;)Z (7)
(Ljava/lang/reflect/Field;)Z
aload 1
invokevirtual com.oracle.svm.hosted.FeatureImpl$DuringAnalysisAccessImpl.getMetaAccess:()Lcom/oracle/graal/pointsto/meta/AnalysisMetaAccess;
invokestatic com.oracle.svm.reflect.hosted.ReflectionDataBuilder.filterFields:(Ljava/lang/Object;Ljava/util/function/Predicate;Lcom/oracle/graal/pointsto/meta/AnalysisMetaAccess;)[Ljava/lang/reflect/Field;
27: aload 0
getfield com.oracle.svm.reflect.hosted.ReflectionDataBuilder.accessors:Lcom/oracle/svm/reflect/hosted/ReflectionDataBuilder$ReflectionDataAccessors;
aload 5
invokevirtual com.oracle.svm.reflect.hosted.ReflectionDataBuilder$ReflectionDataAccessors.getDeclaredMethods:(Ljava/lang/Object;)Ljava/lang/Object;
aload 0
getfield com.oracle.svm.reflect.hosted.ReflectionDataBuilder.reflectionMethods:Ljava/util/Set;
aload 1
invokevirtual com.oracle.svm.hosted.FeatureImpl$DuringAnalysisAccessImpl.getMetaAccess:()Lcom/oracle/graal/pointsto/meta/AnalysisMetaAccess;
invokestatic com.oracle.svm.reflect.hosted.ReflectionDataBuilder.filterMethods:(Ljava/lang/Object;Ljava/util/Set;Lcom/oracle/graal/pointsto/meta/AnalysisMetaAccess;)[Ljava/lang/reflect/Method;
28: aload 0
getfield com.oracle.svm.reflect.hosted.ReflectionDataBuilder.accessors:Lcom/oracle/svm/reflect/hosted/ReflectionDataBuilder$ReflectionDataAccessors;
aload 5
invokevirtual com.oracle.svm.reflect.hosted.ReflectionDataBuilder$ReflectionDataAccessors.getPublicMethods:(Ljava/lang/Object;)Ljava/lang/Object;
aload 0
getfield com.oracle.svm.reflect.hosted.ReflectionDataBuilder.reflectionMethods:Ljava/util/Set;
aload 1
invokevirtual com.oracle.svm.hosted.FeatureImpl$DuringAnalysisAccessImpl.getMetaAccess:()Lcom/oracle/graal/pointsto/meta/AnalysisMetaAccess;
invokestatic com.oracle.svm.reflect.hosted.ReflectionDataBuilder.filterMethods:(Ljava/lang/Object;Ljava/util/Set;Lcom/oracle/graal/pointsto/meta/AnalysisMetaAccess;)[Ljava/lang/reflect/Method;
29: aload 0
getfield com.oracle.svm.reflect.hosted.ReflectionDataBuilder.accessors:Lcom/oracle/svm/reflect/hosted/ReflectionDataBuilder$ReflectionDataAccessors;
aload 5
invokevirtual com.oracle.svm.reflect.hosted.ReflectionDataBuilder$ReflectionDataAccessors.getDeclaredConstructors:(Ljava/lang/Object;)Ljava/lang/Object;
aload 0
getfield com.oracle.svm.reflect.hosted.ReflectionDataBuilder.reflectionMethods:Ljava/util/Set;
aload 1
invokevirtual com.oracle.svm.hosted.FeatureImpl$DuringAnalysisAccessImpl.getMetaAccess:()Lcom/oracle/graal/pointsto/meta/AnalysisMetaAccess;
invokestatic com.oracle.svm.reflect.hosted.ReflectionDataBuilder.filterConstructors:(Ljava/lang/Object;Ljava/util/Set;Lcom/oracle/graal/pointsto/meta/AnalysisMetaAccess;)[Ljava/lang/reflect/Constructor;
30: aload 0
getfield com.oracle.svm.reflect.hosted.ReflectionDataBuilder.accessors:Lcom/oracle/svm/reflect/hosted/ReflectionDataBuilder$ReflectionDataAccessors;
aload 5
invokevirtual com.oracle.svm.reflect.hosted.ReflectionDataBuilder$ReflectionDataAccessors.getPublicConstructors:(Ljava/lang/Object;)Ljava/lang/Object;
aload 0
getfield com.oracle.svm.reflect.hosted.ReflectionDataBuilder.reflectionMethods:Ljava/util/Set;
aload 1
invokevirtual com.oracle.svm.hosted.FeatureImpl$DuringAnalysisAccessImpl.getMetaAccess:()Lcom/oracle/graal/pointsto/meta/AnalysisMetaAccess;
invokestatic com.oracle.svm.reflect.hosted.ReflectionDataBuilder.filterConstructors:(Ljava/lang/Object;Ljava/util/Set;Lcom/oracle/graal/pointsto/meta/AnalysisMetaAccess;)[Ljava/lang/reflect/Constructor;
31: aload 0
getfield com.oracle.svm.reflect.hosted.ReflectionDataBuilder.accessors:Lcom/oracle/svm/reflect/hosted/ReflectionDataBuilder$ReflectionDataAccessors;
aload 5
invokevirtual com.oracle.svm.reflect.hosted.ReflectionDataBuilder$ReflectionDataAccessors.getDeclaredConstructors:(Ljava/lang/Object;)Ljava/lang/Object;
aload 0
getfield com.oracle.svm.reflect.hosted.ReflectionDataBuilder.reflectionMethods:Ljava/util/Set;
invokestatic com.oracle.svm.reflect.hosted.ReflectionDataBuilder.nullaryConstructor:(Ljava/lang/Object;Ljava/util/Set;)Ljava/lang/reflect/Constructor;
32: aload 0
getfield com.oracle.svm.reflect.hosted.ReflectionDataBuilder.accessors:Lcom/oracle/svm/reflect/hosted/ReflectionDataBuilder$ReflectionDataAccessors;
aload 5
invokevirtual com.oracle.svm.reflect.hosted.ReflectionDataBuilder$ReflectionDataAccessors.getDeclaredPublicFields:(Ljava/lang/Object;)Ljava/lang/Object;
aload 0
getfield com.oracle.svm.reflect.hosted.ReflectionDataBuilder.reflectionFields:Ljava/util/Map;
invokeinterface java.util.Map.keySet:()Ljava/util/Set;
aload 1
invokevirtual com.oracle.svm.hosted.FeatureImpl$DuringAnalysisAccessImpl.getMetaAccess:()Lcom/oracle/graal/pointsto/meta/AnalysisMetaAccess;
invokestatic com.oracle.svm.reflect.hosted.ReflectionDataBuilder.filterFields:(Ljava/lang/Object;Ljava/util/Set;Lcom/oracle/graal/pointsto/meta/AnalysisMetaAccess;)[Ljava/lang/reflect/Field;
33: aload 0
getfield com.oracle.svm.reflect.hosted.ReflectionDataBuilder.accessors:Lcom/oracle/svm/reflect/hosted/ReflectionDataBuilder$ReflectionDataAccessors;
aload 5
invokevirtual com.oracle.svm.reflect.hosted.ReflectionDataBuilder$ReflectionDataAccessors.getDeclaredPublicMethods:(Ljava/lang/Object;)Ljava/lang/Object;
aload 0
getfield com.oracle.svm.reflect.hosted.ReflectionDataBuilder.reflectionMethods:Ljava/util/Set;
aload 1
invokevirtual com.oracle.svm.hosted.FeatureImpl$DuringAnalysisAccessImpl.getMetaAccess:()Lcom/oracle/graal/pointsto/meta/AnalysisMetaAccess;
invokestatic com.oracle.svm.reflect.hosted.ReflectionDataBuilder.filterMethods:(Ljava/lang/Object;Ljava/util/Set;Lcom/oracle/graal/pointsto/meta/AnalysisMetaAccess;)[Ljava/lang/reflect/Method;
34: aload 2
invokevirtual java.lang.Class.getDeclaredClasses:()[Ljava/lang/Class;
aload 0
getfield com.oracle.svm.reflect.hosted.ReflectionDataBuilder.reflectionClasses:Ljava/util/Set;
aload 1
invokevirtual com.oracle.svm.hosted.FeatureImpl$DuringAnalysisAccessImpl.getMetaAccess:()Lcom/oracle/graal/pointsto/meta/AnalysisMetaAccess;
invokestatic com.oracle.svm.reflect.hosted.ReflectionDataBuilder.filterClasses:(Ljava/lang/Object;Ljava/util/Set;Lcom/oracle/graal/pointsto/meta/AnalysisMetaAccess;)[Ljava/lang/Class;
35: aload 2
invokevirtual java.lang.Class.getClasses:()[Ljava/lang/Class;
aload 0
getfield com.oracle.svm.reflect.hosted.ReflectionDataBuilder.reflectionClasses:Ljava/util/Set;
aload 1
invokevirtual com.oracle.svm.hosted.FeatureImpl$DuringAnalysisAccessImpl.getMetaAccess:()Lcom/oracle/graal/pointsto/meta/AnalysisMetaAccess;
invokestatic com.oracle.svm.reflect.hosted.ReflectionDataBuilder.filterClasses:(Ljava/lang/Object;Ljava/util/Set;Lcom/oracle/graal/pointsto/meta/AnalysisMetaAccess;)[Ljava/lang/Class;
36: aload 0
aload 2
invokevirtual com.oracle.svm.reflect.hosted.ReflectionDataBuilder.enclosingMethodOrConstructor:(Ljava/lang/Class;)Ljava/lang/reflect/Executable;
37: invokespecial com.oracle.svm.core.hub.DynamicHub$ReflectionData.<init>:([Ljava/lang/reflect/Field;[Ljava/lang/reflect/Field;[Ljava/lang/reflect/Field;[Ljava/lang/reflect/Method;[Ljava/lang/reflect/Method;[Ljava/lang/reflect/Constructor;[Ljava/lang/reflect/Constructor;Ljava/lang/reflect/Constructor;[Ljava/lang/reflect/Field;[Ljava/lang/reflect/Method;[Ljava/lang/Class;[Ljava/lang/Class;Ljava/lang/reflect/Executable;)V
astore 6
start local 6 38: StackMap locals: com.oracle.svm.core.hub.DynamicHub$ReflectionData
StackMap stack:
aload 4
aload 6
invokevirtual com.oracle.svm.core.hub.DynamicHub.setReflectionData:(Lcom/oracle/svm/core/hub/DynamicHub$ReflectionData;)V
39: 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 40 0 this Lcom/oracle/svm/reflect/hosted/ReflectionDataBuilder;
0 40 1 access Lcom/oracle/svm/hosted/FeatureImpl$DuringAnalysisAccessImpl;
0 40 2 clazz Ljava/lang/Class<*>;
1 40 3 type Lcom/oracle/graal/pointsto/meta/AnalysisType;
3 40 4 hub Lcom/oracle/svm/core/hub/DynamicHub;
15 19 5 e Ljava/lang/Throwable;
20 40 5 originalReflectionData Ljava/lang/Object;
22 23 6 reflectionData Lcom/oracle/svm/core/hub/DynamicHub$ReflectionData;
38 40 6 reflectionData Lcom/oracle/svm/core/hub/DynamicHub$ReflectionData;
Exception table:
from to target type
5 13 14 Class java.lang.TypeNotPresentException
5 13 14 Class java.lang.LinkageError
Signature: (Lcom/oracle/svm/hosted/FeatureImpl$DuringAnalysisAccessImpl;Ljava/lang/Class<*>;)V
MethodParameters:
Name Flags
access
clazz
protected void afterAnalysis();
descriptor: ()V
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
iconst_1
putfield com.oracle.svm.reflect.hosted.ReflectionDataBuilder.sealed:Z
1: aload 0
getfield com.oracle.svm.reflect.hosted.ReflectionDataBuilder.modified:Z
ifeq 3
2: ldc "Registration of classes, methods, and fields for reflective access during analysis must set DuringAnalysisAccess.requireAnalysisIteration()."
iconst_0
anewarray java.lang.Object
invokestatic com.oracle.svm.core.util.UserError.abort:(Ljava/lang/String;[Ljava/lang/Object;)Lcom/oracle/svm/core/util/UserError$UserException;
athrow
3: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/oracle/svm/reflect/hosted/ReflectionDataBuilder;
private static java.lang.reflect.Constructor<?> nullaryConstructor(, java.util.Set<?>);
descriptor: (Ljava/lang/Object;Ljava/util/Set;)Ljava/lang/reflect/Constructor;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=6, args_size=2
start local 0 start local 1 0: aload 0
checkcast java.lang.reflect.Constructor[]
dup
astore 5
arraylength
istore 4
iconst_0
istore 3
goto 5
StackMap locals: java.lang.Object java.util.Set top int int java.lang.reflect.Constructor[]
StackMap stack:
1: aload 5
iload 3
aaload
astore 2
start local 2 2: aload 2
invokevirtual java.lang.reflect.Constructor.getParameterCount:()I
ifne 4
aload 1
aload 2
invokeinterface java.util.Set.contains:(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 constructors Ljava/lang/Object;
0 7 1 reflectionMethods Ljava/util/Set<*>;
2 4 2 constructor Ljava/lang/reflect/Constructor<*>;
Signature: (Ljava/lang/Object;Ljava/util/Set<*>;)Ljava/lang/reflect/Constructor<*>;
MethodParameters:
Name Flags
constructors
reflectionMethods
private java.lang.reflect.Executable enclosingMethodOrConstructor(java.lang.Class<?>);
descriptor: (Ljava/lang/Class;)Ljava/lang/reflect/Executable;
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=5, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual java.lang.Class.getEnclosingMethod:()Ljava/lang/reflect/Method;
astore 2
start local 2 1: aload 1
invokevirtual java.lang.Class.getEnclosingConstructor:()Ljava/lang/reflect/Constructor;
astore 3
start local 3 2: goto 10
end local 3 end local 2 StackMap locals:
StackMap stack: java.lang.Throwable
3: pop
4: aconst_null
areturn
5: StackMap locals:
StackMap stack: java.lang.InternalError
pop
6: getstatic java.lang.System.err:Ljava/io/PrintStream;
new java.lang.StringBuilder
dup
ldc "GR-7731: Could not find the enclosing method of class "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.lang.Class.getTypeName:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
7: ldc ". This is a known transient error and most likely does not cause any problems, unless your code relies on the enclosing method of exactly this class. If you can reliably reproduce this problem, please send us a test case."
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
8: invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
9: aconst_null
areturn
start local 2 start local 3 10: StackMap locals: java.lang.reflect.Method java.lang.reflect.Constructor
StackMap stack:
aload 2
ifnonnull 12
aload 3
ifnonnull 12
11: aconst_null
areturn
12: StackMap locals:
StackMap stack:
aload 2
ifnull 14
aload 3
ifnull 14
13: new java.lang.StringBuilder
dup
ldc "Class has both an enclosingMethod and an enclosingConstructor: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc ", "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 2
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc ", "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 3
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
14: StackMap locals:
StackMap stack:
aload 2
ifnull 15
aload 2
goto 16
StackMap locals:
StackMap stack:
15: aload 3
StackMap locals:
StackMap stack: java.lang.reflect.Executable
16: astore 4
start local 4 17: aload 0
getfield com.oracle.svm.reflect.hosted.ReflectionDataBuilder.reflectionMethods:Ljava/util/Set;
aload 4
invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
ifeq 19
18: aload 4
areturn
19: StackMap locals: java.lang.reflect.Executable
StackMap stack:
aconst_null
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 20 0 this Lcom/oracle/svm/reflect/hosted/ReflectionDataBuilder;
0 20 1 clazz Ljava/lang/Class<*>;
1 3 2 enclosingMethod Ljava/lang/reflect/Method;
10 20 2 enclosingMethod Ljava/lang/reflect/Method;
2 3 3 enclosingConstructor Ljava/lang/reflect/Constructor<*>;
10 20 3 enclosingConstructor Ljava/lang/reflect/Constructor<*>;
17 20 4 enclosingMethodOrConstructor Ljava/lang/reflect/Executable;
Exception table:
from to target type
0 2 3 Class java.lang.TypeNotPresentException
0 2 3 Class java.lang.LinkageError
0 2 5 Class java.lang.InternalError
Signature: (Ljava/lang/Class<*>;)Ljava/lang/reflect/Executable;
MethodParameters:
Name Flags
clazz
private static java.lang.reflect.Field[] filterFields(, java.util.Set<java.lang.reflect.Field>, com.oracle.graal.pointsto.meta.AnalysisMetaAccess);
descriptor: (Ljava/lang/Object;Ljava/util/Set;Lcom/oracle/graal/pointsto/meta/AnalysisMetaAccess;)[Ljava/lang/reflect/Field;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
dup
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
pop
invokedynamic test(Ljava/util/Set;)Ljava/util/function/Predicate;
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;)Z
java/util/Set.contains(Ljava/lang/Object;)Z (9 itf)
(Ljava/lang/reflect/Field;)Z
aload 2
invokestatic com.oracle.svm.reflect.hosted.ReflectionDataBuilder.filterFields:(Ljava/lang/Object;Ljava/util/function/Predicate;Lcom/oracle/graal/pointsto/meta/AnalysisMetaAccess;)[Ljava/lang/reflect/Field;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 fields Ljava/lang/Object;
0 1 1 filterSet Ljava/util/Set<Ljava/lang/reflect/Field;>;
0 1 2 metaAccess Lcom/oracle/graal/pointsto/meta/AnalysisMetaAccess;
Signature: (Ljava/lang/Object;Ljava/util/Set<Ljava/lang/reflect/Field;>;Lcom/oracle/graal/pointsto/meta/AnalysisMetaAccess;)[Ljava/lang/reflect/Field;
MethodParameters:
Name Flags
fields
filterSet
metaAccess
private static boolean isHiddenIn(java.lang.reflect.Field, java.lang.Class<?>);
descriptor: (Ljava/lang/reflect/Field;Ljava/lang/Class;)Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 1
aload 0
invokevirtual java.lang.reflect.Field.getName:()Ljava/lang/String;
invokevirtual java.lang.Class.getField:(Ljava/lang/String;)Ljava/lang/reflect/Field;
aload 0
invokevirtual java.lang.reflect.Field.equals:(Ljava/lang/Object;)Z
ifeq 1
iconst_0
goto 2
StackMap locals:
StackMap stack:
1: iconst_1
StackMap locals:
StackMap stack: int
2: ireturn
3: StackMap locals:
StackMap stack: java.lang.NoSuchFieldException
astore 2
start local 2 4: aload 2
invokestatic com.oracle.svm.core.util.VMError.shouldNotReachHere:(Ljava/lang/Throwable;)Ljava/lang/RuntimeException;
athrow
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 field Ljava/lang/reflect/Field;
0 5 1 clazz Ljava/lang/Class<*>;
4 5 2 e Ljava/lang/NoSuchFieldException;
Exception table:
from to target type
0 2 3 Class java.lang.NoSuchFieldException
Signature: (Ljava/lang/reflect/Field;Ljava/lang/Class<*>;)Z
MethodParameters:
Name Flags
field
clazz
private static java.lang.reflect.Field[] filterFields(, java.util.function.Predicate<java.lang.reflect.Field>, com.oracle.graal.pointsto.meta.AnalysisMetaAccess);
descriptor: (Ljava/lang/Object;Ljava/util/function/Predicate;Lcom/oracle/graal/pointsto/meta/AnalysisMetaAccess;)[Ljava/lang/reflect/Field;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=8, args_size=3
start local 0 start local 1 start local 2 0: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 3
start local 3 1: aload 0
checkcast java.lang.reflect.Field[]
dup
astore 7
arraylength
istore 6
iconst_0
istore 5
goto 9
StackMap locals: java.lang.Object java.util.function.Predicate com.oracle.graal.pointsto.meta.AnalysisMetaAccess java.util.List top int int java.lang.reflect.Field[]
StackMap stack:
2: aload 7
iload 5
aaload
astore 4
start local 4 3: aload 1
aload 4
invokeinterface java.util.function.Predicate.test:(Ljava/lang/Object;)Z
ifeq 8
aload 4
aload 2
invokestatic com.oracle.svm.hosted.substitute.SubstitutionReflectivityFilter.shouldExclude:(Ljava/lang/reflect/Field;Lcom/oracle/graal/pointsto/meta/AnalysisMetaAccess;)Z
ifne 8
4: aload 2
aload 4
invokevirtual com.oracle.graal.pointsto.meta.AnalysisMetaAccess.lookupJavaField:(Ljava/lang/reflect/Field;)Lcom/oracle/graal/pointsto/meta/AnalysisField;
ldc Lcom/oracle/svm/core/annotate/Delete;
invokevirtual com.oracle.graal.pointsto.meta.AnalysisField.isAnnotationPresent:(Ljava/lang/Class;)Z
ifne 8
5: aload 3
aload 4
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
6: goto 8
StackMap locals: java.lang.Object java.util.function.Predicate com.oracle.graal.pointsto.meta.AnalysisMetaAccess java.util.List java.lang.reflect.Field int int java.lang.reflect.Field[]
StackMap stack: com.oracle.svm.hosted.substitute.DeletedElementException
7: pop
end local 4 8: StackMap locals: java.lang.Object java.util.function.Predicate com.oracle.graal.pointsto.meta.AnalysisMetaAccess java.util.List top int int java.lang.reflect.Field[]
StackMap stack:
iinc 5 1
StackMap locals:
StackMap stack:
9: iload 5
iload 6
if_icmplt 2
10: aload 3
getstatic com.oracle.svm.reflect.hosted.ReflectionDataBuilder.EMPTY_FIELDS:[Ljava/lang/reflect/Field;
invokeinterface java.util.List.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
checkcast java.lang.reflect.Field[]
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 fields Ljava/lang/Object;
0 11 1 filter Ljava/util/function/Predicate<Ljava/lang/reflect/Field;>;
0 11 2 metaAccess Lcom/oracle/graal/pointsto/meta/AnalysisMetaAccess;
1 11 3 result Ljava/util/List<Ljava/lang/reflect/Field;>;
3 8 4 field Ljava/lang/reflect/Field;
Exception table:
from to target type
4 6 7 Class com.oracle.svm.hosted.substitute.DeletedElementException
Signature: (Ljava/lang/Object;Ljava/util/function/Predicate<Ljava/lang/reflect/Field;>;Lcom/oracle/graal/pointsto/meta/AnalysisMetaAccess;)[Ljava/lang/reflect/Field;
MethodParameters:
Name Flags
fields
filter
metaAccess
private static java.lang.reflect.Constructor<?>[] filterConstructors(, java.util.Set<java.lang.reflect.Executable>, com.oracle.graal.pointsto.meta.AnalysisMetaAccess);
descriptor: (Ljava/lang/Object;Ljava/util/Set;Lcom/oracle/graal/pointsto/meta/AnalysisMetaAccess;)[Ljava/lang/reflect/Constructor;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
aload 2
getstatic com.oracle.svm.reflect.hosted.ReflectionDataBuilder.EMPTY_CONSTRUCTORS:[Ljava/lang/reflect/Constructor;
invokestatic com.oracle.svm.reflect.hosted.ReflectionDataBuilder.filterMethods:(Ljava/lang/Object;Ljava/util/Set;Lcom/oracle/graal/pointsto/meta/AnalysisMetaAccess;[Ljava/lang/reflect/Executable;)[Ljava/lang/reflect/Executable;
checkcast java.lang.reflect.Constructor[]
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 methods Ljava/lang/Object;
0 1 1 filter Ljava/util/Set<Ljava/lang/reflect/Executable;>;
0 1 2 metaAccess Lcom/oracle/graal/pointsto/meta/AnalysisMetaAccess;
Signature: (Ljava/lang/Object;Ljava/util/Set<Ljava/lang/reflect/Executable;>;Lcom/oracle/graal/pointsto/meta/AnalysisMetaAccess;)[Ljava/lang/reflect/Constructor<*>;
MethodParameters:
Name Flags
methods
filter
metaAccess
private static java.lang.reflect.Method[] filterMethods(, java.util.Set<java.lang.reflect.Executable>, com.oracle.graal.pointsto.meta.AnalysisMetaAccess);
descriptor: (Ljava/lang/Object;Ljava/util/Set;Lcom/oracle/graal/pointsto/meta/AnalysisMetaAccess;)[Ljava/lang/reflect/Method;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
aload 2
getstatic com.oracle.svm.reflect.hosted.ReflectionDataBuilder.EMPTY_METHODS:[Ljava/lang/reflect/Method;
invokestatic com.oracle.svm.reflect.hosted.ReflectionDataBuilder.filterMethods:(Ljava/lang/Object;Ljava/util/Set;Lcom/oracle/graal/pointsto/meta/AnalysisMetaAccess;[Ljava/lang/reflect/Executable;)[Ljava/lang/reflect/Executable;
checkcast java.lang.reflect.Method[]
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 methods Ljava/lang/Object;
0 1 1 filter Ljava/util/Set<Ljava/lang/reflect/Executable;>;
0 1 2 metaAccess Lcom/oracle/graal/pointsto/meta/AnalysisMetaAccess;
Signature: (Ljava/lang/Object;Ljava/util/Set<Ljava/lang/reflect/Executable;>;Lcom/oracle/graal/pointsto/meta/AnalysisMetaAccess;)[Ljava/lang/reflect/Method;
MethodParameters:
Name Flags
methods
filter
metaAccess
private static <T extends java.lang.reflect.Executable> T[] filterMethods(, java.util.Set<java.lang.reflect.Executable>, com.oracle.graal.pointsto.meta.AnalysisMetaAccess, );
descriptor: (Ljava/lang/Object;Ljava/util/Set;Lcom/oracle/graal/pointsto/meta/AnalysisMetaAccess;[Ljava/lang/reflect/Executable;)[Ljava/lang/reflect/Executable;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=9, args_size=4
start local 0 start local 1 start local 2 start local 3 0: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 4
start local 4 1: aload 0
checkcast java.lang.reflect.Executable[]
dup
astore 8
arraylength
istore 7
iconst_0
istore 6
goto 6
StackMap locals: java.lang.Object java.util.Set com.oracle.graal.pointsto.meta.AnalysisMetaAccess java.lang.reflect.Executable[] java.util.List top int int java.lang.reflect.Executable[]
StackMap stack:
2: aload 8
iload 6
aaload
astore 5
start local 5 3: aload 1
aload 5
invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
ifeq 5
aload 5
aload 2
invokestatic com.oracle.svm.hosted.substitute.SubstitutionReflectivityFilter.shouldExclude:(Ljava/lang/reflect/Executable;Lcom/oracle/graal/pointsto/meta/AnalysisMetaAccess;)Z
ifne 5
4: aload 4
aload 5
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
end local 5 5: StackMap locals:
StackMap stack:
iinc 6 1
StackMap locals:
StackMap stack:
6: iload 6
iload 7
if_icmplt 2
7: aload 4
aload 3
invokeinterface java.util.List.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
checkcast java.lang.reflect.Executable[]
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 methods Ljava/lang/Object;
0 8 1 filter Ljava/util/Set<Ljava/lang/reflect/Executable;>;
0 8 2 metaAccess Lcom/oracle/graal/pointsto/meta/AnalysisMetaAccess;
0 8 3 prototypeArray [Ljava/lang/reflect/Executable;
1 8 4 result Ljava/util/List<TT;>;
3 5 5 method TT;
Signature: <T:Ljava/lang/reflect/Executable;>(Ljava/lang/Object;Ljava/util/Set<Ljava/lang/reflect/Executable;>;Lcom/oracle/graal/pointsto/meta/AnalysisMetaAccess;[TT;)[TT;
MethodParameters:
Name Flags
methods
filter
metaAccess
prototypeArray
private static java.lang.Class<?>[] filterClasses(, java.util.Set<java.lang.Class<?>>, com.oracle.graal.pointsto.meta.AnalysisMetaAccess);
descriptor: (Ljava/lang/Object;Ljava/util/Set;Lcom/oracle/graal/pointsto/meta/AnalysisMetaAccess;)[Ljava/lang/Class;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=8, args_size=3
start local 0 start local 1 start local 2 0: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 3
start local 3 1: aload 0
checkcast java.lang.Class[]
dup
astore 7
arraylength
istore 6
iconst_0
istore 5
goto 6
StackMap locals: java.lang.Object java.util.Set com.oracle.graal.pointsto.meta.AnalysisMetaAccess java.util.List top int int java.lang.Class[]
StackMap stack:
2: aload 7
iload 5
aaload
astore 4
start local 4 3: aload 1
aload 4
invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
ifeq 5
aload 4
aload 2
invokestatic com.oracle.svm.hosted.substitute.SubstitutionReflectivityFilter.shouldExclude:(Ljava/lang/Class;Lcom/oracle/graal/pointsto/meta/AnalysisMetaAccess;)Z
ifne 5
4: aload 3
aload 4
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
end local 4 5: StackMap locals:
StackMap stack:
iinc 5 1
StackMap locals:
StackMap stack:
6: iload 5
iload 6
if_icmplt 2
7: aload 3
getstatic com.oracle.svm.reflect.hosted.ReflectionDataBuilder.EMPTY_CLASSES:[Ljava/lang/Class;
invokeinterface java.util.List.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
checkcast java.lang.Class[]
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 classes Ljava/lang/Object;
0 8 1 filter Ljava/util/Set<Ljava/lang/Class<*>;>;
0 8 2 metaAccess Lcom/oracle/graal/pointsto/meta/AnalysisMetaAccess;
1 8 3 result Ljava/util/List<Ljava/lang/Class<*>;>;
3 5 4 clazz Ljava/lang/Class<*>;
Signature: (Ljava/lang/Object;Ljava/util/Set<Ljava/lang/Class<*>;>;Lcom/oracle/graal/pointsto/meta/AnalysisMetaAccess;)[Ljava/lang/Class<*>;
MethodParameters:
Name Flags
classes
filter
metaAccess
boolean inspectFinalFieldWritableForAnalysis(java.lang.reflect.Field);
descriptor: (Ljava/lang/reflect/Field;)Z
flags: (0x0000)
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: getstatic com.oracle.svm.reflect.hosted.ReflectionDataBuilder.$assertionsDisabled:Z
ifne 1
aload 1
invokevirtual java.lang.reflect.Field.getModifiers:()I
invokestatic java.lang.reflect.Modifier.isFinal:(I)Z
ifne 1
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
1: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.svm.reflect.hosted.ReflectionDataBuilder.reflectionFields:Ljava/util/Map;
aload 1
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.util.EnumSet
astore 2
start local 2 2: aload 0
getfield com.oracle.svm.reflect.hosted.ReflectionDataBuilder.analyzedFinalFields:Ljava/util/Set;
aload 1
invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
pop
3: aload 2
ifnull 4
aload 2
getstatic com.oracle.svm.reflect.hosted.ReflectionDataBuilder$FieldFlag.FINAL_BUT_WRITABLE:Lcom/oracle/svm/reflect/hosted/ReflectionDataBuilder$FieldFlag;
invokevirtual java.util.EnumSet.contains:(Ljava/lang/Object;)Z
ifeq 4
iconst_1
ireturn
StackMap locals: java.util.EnumSet
StackMap stack:
4: iconst_0
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lcom/oracle/svm/reflect/hosted/ReflectionDataBuilder;
0 5 1 field Ljava/lang/reflect/Field;
2 5 2 flags Ljava/util/EnumSet<Lcom/oracle/svm/reflect/hosted/ReflectionDataBuilder$FieldFlag;>;
MethodParameters:
Name Flags
field
private java.util.EnumSet lambda$0(java.util.EnumSet, boolean, java.lang.reflect.Field, java.lang.reflect.Field, java.util.EnumSet);
descriptor: (Ljava/util/EnumSet;ZLjava/lang/reflect/Field;Ljava/lang/reflect/Field;Ljava/util/EnumSet;)Ljava/util/EnumSet;
flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
Code:
stack=6, locals=6, args_size=6
start local 0 start local 4 start local 5 0: aload 5
ifnull 1
aload 5
aload 1
invokevirtual java.util.EnumSet.containsAll:(Ljava/util/Collection;)Z
ifne 2
1: StackMap locals:
StackMap stack:
aload 0
iconst_1
putfield com.oracle.svm.reflect.hosted.ReflectionDataBuilder.modified:Z
2: StackMap locals:
StackMap stack:
aload 5
ifnull 4
3: aload 1
aload 5
invokevirtual java.util.EnumSet.addAll:(Ljava/util/Collection;)Z
pop
4: StackMap locals:
StackMap stack:
iload 2
ifeq 9
aload 5
ifnull 5
aload 5
getstatic com.oracle.svm.reflect.hosted.ReflectionDataBuilder$FieldFlag.FINAL_BUT_WRITABLE:Lcom/oracle/svm/reflect/hosted/ReflectionDataBuilder$FieldFlag;
invokevirtual java.util.EnumSet.contains:(Ljava/lang/Object;)Z
ifne 9
5: StackMap locals:
StackMap stack:
aload 0
getfield com.oracle.svm.reflect.hosted.ReflectionDataBuilder.analyzedFinalFields:Ljava/util/Set;
aload 3
invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
ifeq 6
iconst_0
goto 7
StackMap locals:
StackMap stack:
6: iconst_1
7: StackMap locals:
StackMap stack: int
ldc "A field that was already processed by the analysis cannot be re-registered as writable: %s"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 3
aastore
8: invokestatic com.oracle.svm.core.util.UserError.guarantee:(ZLjava/lang/String;[Ljava/lang/Object;)V
9: StackMap locals:
StackMap stack:
aload 1
areturn
end local 5 end local 4 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lcom/oracle/svm/reflect/hosted/ReflectionDataBuilder;
0 10 4 key Ljava/lang/reflect/Field;
0 10 5 existingFlags Ljava/util/EnumSet<Lcom/oracle/svm/reflect/hosted/ReflectionDataBuilder$FieldFlag;>;
private static void lambda$3(com.oracle.svm.hosted.FeatureImpl$DuringAnalysisAccessImpl, java.util.Set, java.lang.reflect.Field, java.util.EnumSet);
descriptor: (Lcom/oracle/svm/hosted/FeatureImpl$DuringAnalysisAccessImpl;Ljava/util/Set;Ljava/lang/reflect/Field;Ljava/util/EnumSet;)V
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
getstatic com.oracle.svm.reflect.hosted.ReflectionDataBuilder$FieldFlag.UNSAFE_ACCESSIBLE:Lcom/oracle/svm/reflect/hosted/ReflectionDataBuilder$FieldFlag;
invokevirtual java.util.EnumSet.contains:(Ljava/lang/Object;)Z
ifeq 2
1: aload 0
aload 2
invokevirtual com.oracle.svm.hosted.FeatureImpl$DuringAnalysisAccessImpl.registerAsUnsafeAccessed:(Ljava/lang/reflect/Field;)V
2: StackMap locals:
StackMap stack:
aload 1
aload 2
invokevirtual java.lang.reflect.Field.getDeclaringClass:()Ljava/lang/Class;
invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
pop
3: return
end local 3 end local 2 LocalVariableTable:
Start End Slot Name Signature
0 4 2 field Ljava/lang/reflect/Field;
0 4 3 flags Ljava/util/EnumSet<Lcom/oracle/svm/reflect/hosted/ReflectionDataBuilder$FieldFlag;>;
private void lambda$4(com.oracle.svm.hosted.FeatureImpl$DuringAnalysisAccessImpl, java.lang.Class);
descriptor: (Lcom/oracle/svm/hosted/FeatureImpl$DuringAnalysisAccessImpl;Ljava/lang/Class;)V
flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
Code:
stack=3, locals=3, args_size=3
start local 0 start local 2 0: aload 0
aload 1
aload 2
invokevirtual com.oracle.svm.reflect.hosted.ReflectionDataBuilder.processClass:(Lcom/oracle/svm/hosted/FeatureImpl$DuringAnalysisAccessImpl;Ljava/lang/Class;)V
return
end local 2 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/svm/reflect/hosted/ReflectionDataBuilder;
0 1 2 clazz Ljava/lang/Class<*>;
private boolean lambda$5(java.lang.Class, java.lang.reflect.Field);
descriptor: (Ljava/lang/Class;Ljava/lang/reflect/Field;)Z
flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
Code:
stack=2, locals=3, args_size=3
start local 0 start local 2 0: aload 0
getfield com.oracle.svm.reflect.hosted.ReflectionDataBuilder.reflectionFields:Ljava/util/Map;
aload 2
invokeinterface java.util.Map.containsKey:(Ljava/lang/Object;)Z
ifeq 1
aload 2
aload 1
invokestatic com.oracle.svm.reflect.hosted.ReflectionDataBuilder.isHiddenIn:(Ljava/lang/reflect/Field;Ljava/lang/Class;)Z
ifne 1
iconst_1
goto 2
StackMap locals:
StackMap stack:
1: iconst_0
StackMap locals:
StackMap stack: int
2: ireturn
end local 2 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/oracle/svm/reflect/hosted/ReflectionDataBuilder;
0 3 2 f Ljava/lang/reflect/Field;
}
SourceFile: "ReflectionDataBuilder.java"
NestMembers:
com.oracle.svm.reflect.hosted.ReflectionDataBuilder$FieldFlag com.oracle.svm.reflect.hosted.ReflectionDataBuilder$ReflectionDataAccessors
InnerClasses:
public final ReflectionData = com.oracle.svm.core.hub.DynamicHub$ReflectionData of com.oracle.svm.core.hub.DynamicHub
public UserException = com.oracle.svm.core.util.UserError$UserException of com.oracle.svm.core.util.UserError
public DuringAnalysisAccessImpl = com.oracle.svm.hosted.FeatureImpl$DuringAnalysisAccessImpl of com.oracle.svm.hosted.FeatureImpl
public DuringSetupAccessImpl = com.oracle.svm.hosted.FeatureImpl$DuringSetupAccessImpl of com.oracle.svm.hosted.FeatureImpl
private final FieldFlag = com.oracle.svm.reflect.hosted.ReflectionDataBuilder$FieldFlag of com.oracle.svm.reflect.hosted.ReflectionDataBuilder
final ReflectionDataAccessors = com.oracle.svm.reflect.hosted.ReflectionDataBuilder$ReflectionDataAccessors of com.oracle.svm.reflect.hosted.ReflectionDataBuilder
public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
public abstract DuringAnalysisAccess = org.graalvm.nativeimage.hosted.Feature$DuringAnalysisAccess of org.graalvm.nativeimage.hosted.Feature