jdk/src/share/classes/sun/reflect/UnsafeFieldAccessorImpl.java
changeset 10342 ca0984bc9d32
parent 5506 202f599c92aa
child 14342 8435a30053c1
equal deleted inserted replaced
10341:3c12667717a7 10342:ca0984bc9d32
    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