class com.oracle.svm.hosted.FallbackFeature$ReflectionInvocationCheck
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: com.oracle.svm.hosted.FallbackFeature$ReflectionInvocationCheck
super_class: java.lang.Object
{
private final java.lang.reflect.Method reflectionMethod;
descriptor: Ljava/lang/reflect/Method;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final com.oracle.svm.hosted.FallbackFeature$InvokeChecker checker;
descriptor: Lcom/oracle/svm/hosted/FallbackFeature$InvokeChecker;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private com.oracle.graal.pointsto.meta.AnalysisMethod trackedReflectionMethod;
descriptor: Lcom/oracle/graal/pointsto/meta/AnalysisMethod;
flags: (0x0002) ACC_PRIVATE
void <init>(java.lang.reflect.Method, com.oracle.svm.hosted.FallbackFeature$InvokeChecker);
descriptor: (Ljava/lang/reflect/Method;Lcom/oracle/svm/hosted/FallbackFeature$InvokeChecker;)V
flags: (0x0000)
Code:
stack=2, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
aload 1
putfield com.oracle.svm.hosted.FallbackFeature$ReflectionInvocationCheck.reflectionMethod:Ljava/lang/reflect/Method;
2: aload 0
aload 2
putfield com.oracle.svm.hosted.FallbackFeature$ReflectionInvocationCheck.checker:Lcom/oracle/svm/hosted/FallbackFeature$InvokeChecker;
3: aload 0
aconst_null
putfield com.oracle.svm.hosted.FallbackFeature$ReflectionInvocationCheck.trackedReflectionMethod:Lcom/oracle/graal/pointsto/meta/AnalysisMethod;
4: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lcom/oracle/svm/hosted/FallbackFeature$ReflectionInvocationCheck;
0 5 1 reflectionMethod Ljava/lang/reflect/Method;
0 5 2 checker Lcom/oracle/svm/hosted/FallbackFeature$InvokeChecker;
MethodParameters:
Name Flags
reflectionMethod
checker
void trackMethod(com.oracle.graal.pointsto.meta.AnalysisMetaAccess);
descriptor: (Lcom/oracle/graal/pointsto/meta/AnalysisMetaAccess;)V
flags: (0x0000)
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
aload 0
getfield com.oracle.svm.hosted.FallbackFeature$ReflectionInvocationCheck.reflectionMethod:Ljava/lang/reflect/Method;
invokevirtual com.oracle.graal.pointsto.meta.AnalysisMetaAccess.lookupJavaMethod:(Ljava/lang/reflect/Executable;)Lcom/oracle/graal/pointsto/meta/AnalysisMethod;
putfield com.oracle.svm.hosted.FallbackFeature$ReflectionInvocationCheck.trackedReflectionMethod:Lcom/oracle/graal/pointsto/meta/AnalysisMethod;
1: aload 0
getfield com.oracle.svm.hosted.FallbackFeature$ReflectionInvocationCheck.trackedReflectionMethod:Lcom/oracle/graal/pointsto/meta/AnalysisMethod;
invokevirtual com.oracle.graal.pointsto.meta.AnalysisMethod.startTrackInvocations:()V
2: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/oracle/svm/hosted/FallbackFeature$ReflectionInvocationCheck;
0 3 1 metaAccess Lcom/oracle/graal/pointsto/meta/AnalysisMetaAccess;
MethodParameters:
Name Flags
metaAccess
void apply(jdk.vm.ci.code.BytecodePosition);
descriptor: (Ljdk/vm/ci/code/BytecodePosition;)V
flags: (0x0000)
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual jdk.vm.ci.code.BytecodePosition.getMethod:()Ljdk/vm/ci/meta/ResolvedJavaMethod;
checkcast com.oracle.graal.pointsto.meta.AnalysisMethod
invokevirtual com.oracle.graal.pointsto.meta.AnalysisMethod.getDeclaringClass:()Lcom/oracle/graal/pointsto/meta/AnalysisType;
invokevirtual com.oracle.graal.pointsto.meta.AnalysisType.getJavaClass:()Ljava/lang/Class;
invokevirtual java.lang.Class.getClassLoader:()Ljava/lang/ClassLoader;
astore 2
start local 2 1: invokestatic com.oracle.svm.hosted.NativeImageSystemClassLoader.singleton:()Lcom/oracle/svm/hosted/NativeImageSystemClassLoader;
aload 2
invokevirtual com.oracle.svm.hosted.NativeImageSystemClassLoader.isNativeImageClassLoader:(Ljava/lang/ClassLoader;)Z
ifeq 3
2: aload 0
getfield com.oracle.svm.hosted.FallbackFeature$ReflectionInvocationCheck.checker:Lcom/oracle/svm/hosted/FallbackFeature$InvokeChecker;
aload 0
aload 1
invokeinterface com.oracle.svm.hosted.FallbackFeature$InvokeChecker.check:(Lcom/oracle/svm/hosted/FallbackFeature$ReflectionInvocationCheck;Ljdk/vm/ci/code/BytecodePosition;)V
3: StackMap locals: java.lang.ClassLoader
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/oracle/svm/hosted/FallbackFeature$ReflectionInvocationCheck;
0 4 1 invokeLocation Ljdk/vm/ci/code/BytecodePosition;
1 4 2 classLoader Ljava/lang/ClassLoader;
MethodParameters:
Name Flags
invokeLocation
java.lang.String locationString(jdk.vm.ci.code.BytecodePosition);
descriptor: (Ljdk/vm/ci/code/BytecodePosition;)Ljava/lang/String;
flags: (0x0000)
Code:
stack=4, locals=4, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual jdk.vm.ci.code.BytecodePosition.getMethod:()Ljdk/vm/ci/meta/ResolvedJavaMethod;
astore 2
start local 2 1: aload 2
aload 1
invokevirtual jdk.vm.ci.code.BytecodePosition.getBCI:()I
invokeinterface jdk.vm.ci.meta.ResolvedJavaMethod.asStackTraceElement:(I)Ljava/lang/StackTraceElement;
invokevirtual java.lang.StackTraceElement.toString:()Ljava/lang/String;
astore 3
start local 3 2: new java.lang.StringBuilder
dup
aload 0
getfield com.oracle.svm.hosted.FallbackFeature$ReflectionInvocationCheck.trackedReflectionMethod:Lcom/oracle/graal/pointsto/meta/AnalysisMethod;
ldc "%H.%n"
invokevirtual com.oracle.graal.pointsto.meta.AnalysisMethod.format:(Ljava/lang/String;)Ljava/lang/String;
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc " invoked at "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 3
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
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 3 0 this Lcom/oracle/svm/hosted/FallbackFeature$ReflectionInvocationCheck;
0 3 1 invokeLocation Ljdk/vm/ci/code/BytecodePosition;
1 3 2 caller Ljdk/vm/ci/meta/ResolvedJavaMethod;
2 3 3 callerLocation Ljava/lang/String;
MethodParameters:
Name Flags
invokeLocation
}
SourceFile: "FallbackFeature.java"
NestHost: com.oracle.svm.hosted.FallbackFeature
InnerClasses:
private abstract InvokeChecker = com.oracle.svm.hosted.FallbackFeature$InvokeChecker of com.oracle.svm.hosted.FallbackFeature
private ReflectionInvocationCheck = com.oracle.svm.hosted.FallbackFeature$ReflectionInvocationCheck of com.oracle.svm.hosted.FallbackFeature