final class com.oracle.svm.core.jdk.Target_java_util_concurrent_atomic_AtomicReferenceFieldUpdater_AtomicReferenceFieldUpdaterImpl
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: com.oracle.svm.core.jdk.Target_java_util_concurrent_atomic_AtomicReferenceFieldUpdater_AtomicReferenceFieldUpdaterImpl
super_class: java.lang.Object
{
private long offset;
descriptor: J
flags: (0x0002) ACC_PRIVATE
RuntimeVisibleAnnotations:
com.oracle.svm.core.annotate.Alias()
com.oracle.svm.core.annotate.RecomputeFieldValue(kind = com.oracle.svm.core.annotate.RecomputeFieldValue$Kind.AtomicFieldUpdaterOffset:Lcom/oracle/svm/core/annotate/RecomputeFieldValue$Kind;)
private java.lang.Class<?> cclass;
descriptor: Ljava/lang/Class;
flags: (0x0002) ACC_PRIVATE
Signature: Ljava/lang/Class<*>;
RuntimeVisibleAnnotations:
com.oracle.svm.core.annotate.Alias()
private java.lang.Class<?> tclass;
descriptor: Ljava/lang/Class;
flags: (0x0002) ACC_PRIVATE
Signature: Ljava/lang/Class<*>;
RuntimeVisibleAnnotations:
com.oracle.svm.core.annotate.Alias()
private java.lang.Class<?> vclass;
descriptor: Ljava/lang/Class;
flags: (0x0002) ACC_PRIVATE
Signature: Ljava/lang/Class<*>;
RuntimeVisibleAnnotations:
com.oracle.svm.core.annotate.Alias()
void <init>(java.lang.Class<?>, java.lang.Class<?>, java.lang.String, java.lang.Class<?>);
descriptor: (Ljava/lang/Class;Ljava/lang/Class;Ljava/lang/String;Ljava/lang/Class;)V
flags: (0x0000)
Code:
stack=3, locals=9, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 1
aload 3
invokevirtual java.lang.Class.getDeclaredField:(Ljava/lang/String;)Ljava/lang/reflect/Field;
astore 5
start local 5 2: aload 5
invokevirtual java.lang.reflect.Field.getModifiers:()I
istore 7
start local 7 3: aload 5
invokevirtual java.lang.reflect.Field.getType:()Ljava/lang/Class;
astore 6
start local 6 4: goto 7
end local 7 end local 6 end local 5 StackMap locals: com.oracle.svm.core.jdk.Target_java_util_concurrent_atomic_AtomicReferenceFieldUpdater_AtomicReferenceFieldUpdaterImpl java.lang.Class java.lang.Class java.lang.String java.lang.Class
StackMap stack: java.lang.Exception
5: astore 8
start local 8 6: new java.lang.RuntimeException
dup
aload 8
invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/Throwable;)V
athrow
end local 8 start local 5 start local 6 start local 7 7: StackMap locals: java.lang.reflect.Field java.lang.Class int
StackMap stack:
aload 2
aload 6
if_acmpeq 9
8: new java.lang.ClassCastException
dup
invokespecial java.lang.ClassCastException.<init>:()V
athrow
9: StackMap locals:
StackMap stack:
aload 2
invokevirtual java.lang.Class.isPrimitive:()Z
ifeq 11
10: new java.lang.IllegalArgumentException
dup
ldc "Must be reference type"
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
11: StackMap locals:
StackMap stack:
iload 7
invokestatic java.lang.reflect.Modifier.isVolatile:(I)Z
ifne 13
12: new java.lang.IllegalArgumentException
dup
ldc "Must be volatile type"
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
13: StackMap locals:
StackMap stack:
aload 0
aload 1
putfield com.oracle.svm.core.jdk.Target_java_util_concurrent_atomic_AtomicReferenceFieldUpdater_AtomicReferenceFieldUpdaterImpl.cclass:Ljava/lang/Class;
14: aload 0
aload 1
putfield com.oracle.svm.core.jdk.Target_java_util_concurrent_atomic_AtomicReferenceFieldUpdater_AtomicReferenceFieldUpdaterImpl.tclass:Ljava/lang/Class;
15: aload 0
aload 2
putfield com.oracle.svm.core.jdk.Target_java_util_concurrent_atomic_AtomicReferenceFieldUpdater_AtomicReferenceFieldUpdaterImpl.vclass:Ljava/lang/Class;
16: aload 0
invokestatic org.graalvm.compiler.serviceprovider.GraalUnsafeAccess.getUnsafe:()Lsun/misc/Unsafe;
aload 5
invokevirtual sun.misc.Unsafe.objectFieldOffset:(Ljava/lang/reflect/Field;)J
putfield com.oracle.svm.core.jdk.Target_java_util_concurrent_atomic_AtomicReferenceFieldUpdater_AtomicReferenceFieldUpdaterImpl.offset:J
17: 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 18 0 this Lcom/oracle/svm/core/jdk/Target_java_util_concurrent_atomic_AtomicReferenceFieldUpdater_AtomicReferenceFieldUpdaterImpl;
0 18 1 tclass Ljava/lang/Class<*>;
0 18 2 vclass Ljava/lang/Class<*>;
0 18 3 fieldName Ljava/lang/String;
0 18 4 caller Ljava/lang/Class<*>;
2 5 5 field Ljava/lang/reflect/Field;
7 18 5 field Ljava/lang/reflect/Field;
4 5 6 fieldClass Ljava/lang/Class<*>;
7 18 6 fieldClass Ljava/lang/Class<*>;
3 5 7 modifiers I
7 18 7 modifiers I
6 7 8 ex Ljava/lang/Exception;
Exception table:
from to target type
1 4 5 Class java.lang.Exception
Signature: (Ljava/lang/Class<*>;Ljava/lang/Class<*>;Ljava/lang/String;Ljava/lang/Class<*>;)V
RuntimeVisibleAnnotations:
com.oracle.svm.core.annotate.Substitute()
MethodParameters:
Name Flags
tclass final
vclass final
fieldName final
caller final
}
SourceFile: "RecomputedFields.java"
InnerClasses:
public final Kind = com.oracle.svm.core.annotate.RecomputeFieldValue$Kind of com.oracle.svm.core.annotate.RecomputeFieldValue
RuntimeVisibleAnnotations:
com.oracle.svm.core.annotate.TargetClass(className = "java.util.concurrent.atomic.AtomicReferenceFieldUpdater$AtomicReferenceFieldUpdaterImpl")