< prev index next >

src/java.base/share/classes/jdk/internal/reflect/UnsafeQualifiedStaticObjectFieldAccessorImpl.java

Print this page

        

*** 33,43 **** UnsafeQualifiedStaticObjectFieldAccessorImpl(Field field, boolean isReadOnly) { super(field, isReadOnly); } public Object get(Object obj) throws IllegalArgumentException { ! return unsafe.getReferenceVolatile(base, fieldOffset); } public boolean getBoolean(Object obj) throws IllegalArgumentException { throw newGetBooleanIllegalArgumentException(); } --- 33,44 ---- UnsafeQualifiedStaticObjectFieldAccessorImpl(Field field, boolean isReadOnly) { super(field, isReadOnly); } public Object get(Object obj) throws IllegalArgumentException { ! return isFlattened() ? unsafe.getValue(obj, fieldOffset, field.getType()) ! : unsafe.getReferenceVolatile(base, fieldOffset); } public boolean getBoolean(Object obj) throws IllegalArgumentException { throw newGetBooleanIllegalArgumentException(); }
*** 74,89 **** throws IllegalArgumentException, IllegalAccessException { if (isReadOnly) { throwFinalFieldIllegalAccessException(value); } ! if (value != null) { ! if (!field.getType().isAssignableFrom(value.getClass())) { ! throwSetIllegalArgumentException(value); ! } ! } unsafe.putReferenceVolatile(base, fieldOffset, value); } public void setBoolean(Object obj, boolean z) throws IllegalArgumentException, IllegalAccessException { --- 75,90 ---- throws IllegalArgumentException, IllegalAccessException { if (isReadOnly) { throwFinalFieldIllegalAccessException(value); } ! checkValue(value); ! if (isFlattened()) { ! unsafe.putValue(base, fieldOffset, field.getType(), value); ! } else { unsafe.putReferenceVolatile(base, fieldOffset, value); + } } public void setBoolean(Object obj, boolean z) throws IllegalArgumentException, IllegalAccessException {
< prev index next >