jdk/src/share/classes/sun/reflect/UnsafeFieldAccessorImpl.java
changeset 10342 ca0984bc9d32
parent 5506 202f599c92aa
child 14342 8435a30053c1
--- a/jdk/src/share/classes/sun/reflect/UnsafeFieldAccessorImpl.java	Wed Aug 17 12:10:53 2011 -0700
+++ b/jdk/src/share/classes/sun/reflect/UnsafeFieldAccessorImpl.java	Mon Aug 15 17:17:21 2011 -0700
@@ -40,12 +40,15 @@
     static final Unsafe unsafe = Unsafe.getUnsafe();
 
     protected final Field   field;
-    protected final int     fieldOffset;
+    protected final long    fieldOffset;
     protected final boolean isFinal;
 
     UnsafeFieldAccessorImpl(Field field) {
         this.field = field;
-        fieldOffset = unsafe.fieldOffset(field);
+        if (Modifier.isStatic(field.getModifiers()))
+            fieldOffset = unsafe.staticFieldOffset(field);
+        else
+            fieldOffset = unsafe.objectFieldOffset(field);
         isFinal = Modifier.isFinal(field.getModifiers());
     }