--- 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());
}