< prev index next >

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

Print this page

        

*** 32,42 **** super(field); } public Object get(Object obj) throws IllegalArgumentException { ensureObj(obj); ! return isFlattened ? unsafe.getValue(obj, fieldOffset, field.getType()) : unsafe.getObject(obj, fieldOffset); } public boolean getBoolean(Object obj) throws IllegalArgumentException { throw newGetBooleanIllegalArgumentException(); --- 32,42 ---- super(field); } public Object get(Object obj) throws IllegalArgumentException { ensureObj(obj); ! return isFlattened() ? unsafe.getValue(obj, fieldOffset, field.getType()) : unsafe.getObject(obj, fieldOffset); } public boolean getBoolean(Object obj) throws IllegalArgumentException { throw newGetBooleanIllegalArgumentException();
*** 75,92 **** { ensureObj(obj); if (isFinal) { throwFinalFieldIllegalAccessException(value); } ! if (value != null) { ! if (!field.getType().isAssignableFrom(value.getClass())) { ! throwSetIllegalArgumentException(value); ! } ! } else if (field.getType().isValue()) { ! throw new NullPointerException("cannot set this field of type " + field.getType() + " to null"); ! } ! if (isFlattened) { unsafe.putValue(obj, fieldOffset, field.getType(), value); } else { unsafe.putObject(obj, fieldOffset, value); } } --- 75,86 ---- { ensureObj(obj); if (isFinal) { throwFinalFieldIllegalAccessException(value); } ! checkValue(value); ! if (isFlattened()) { unsafe.putValue(obj, fieldOffset, field.getType(), value); } else { unsafe.putObject(obj, fieldOffset, value); } }
< prev index next >