equal
deleted
inserted
replaced
38 |
38 |
39 abstract class UnsafeFieldAccessorImpl extends FieldAccessorImpl { |
39 abstract class UnsafeFieldAccessorImpl extends FieldAccessorImpl { |
40 static final Unsafe unsafe = Unsafe.getUnsafe(); |
40 static final Unsafe unsafe = Unsafe.getUnsafe(); |
41 |
41 |
42 protected final Field field; |
42 protected final Field field; |
43 protected final int fieldOffset; |
43 protected final long fieldOffset; |
44 protected final boolean isFinal; |
44 protected final boolean isFinal; |
45 |
45 |
46 UnsafeFieldAccessorImpl(Field field) { |
46 UnsafeFieldAccessorImpl(Field field) { |
47 this.field = field; |
47 this.field = field; |
48 fieldOffset = unsafe.fieldOffset(field); |
48 if (Modifier.isStatic(field.getModifiers())) |
|
49 fieldOffset = unsafe.staticFieldOffset(field); |
|
50 else |
|
51 fieldOffset = unsafe.objectFieldOffset(field); |
49 isFinal = Modifier.isFinal(field.getModifiers()); |
52 isFinal = Modifier.isFinal(field.getModifiers()); |
50 } |
53 } |
51 |
54 |
52 protected void ensureObj(Object o) { |
55 protected void ensureObj(Object o) { |
53 // NOTE: will throw NullPointerException, as specified, if o is null |
56 // NOTE: will throw NullPointerException, as specified, if o is null |