< prev index next >

src/java.base/share/classes/java/lang/invoke/VarHandles.java

Print this page

        

*** 31,41 **** static VarHandle makeFieldHandle(MemberName f, Class<?> refc, Class<?> type, boolean isWriteAllowedOnFinalFields) { if (!f.isStatic()) { long foffset = MethodHandleNatives.objectFieldOffset(f); if (!type.isPrimitive()) { ! if (f.isFlatValue()) { return f.isFinal() && !isWriteAllowedOnFinalFields ? new VarHandleReferences.FlatValueFieldInstanceReadOnly(refc, foffset, type) : new VarHandleReferences.FlatValueFieldInstanceReadWrite(refc, foffset, type); } else { return f.isFinal() && !isWriteAllowedOnFinalFields --- 31,41 ---- static VarHandle makeFieldHandle(MemberName f, Class<?> refc, Class<?> type, boolean isWriteAllowedOnFinalFields) { if (!f.isStatic()) { long foffset = MethodHandleNatives.objectFieldOffset(f); if (!type.isPrimitive()) { ! if (f.isFlattened()) { return f.isFinal() && !isWriteAllowedOnFinalFields ? new VarHandleReferences.FlatValueFieldInstanceReadOnly(refc, foffset, type) : new VarHandleReferences.FlatValueFieldInstanceReadWrite(refc, foffset, type); } else { return f.isFinal() && !isWriteAllowedOnFinalFields
*** 98,108 **** UNSAFE.ensureClassInitialized(refc); Object base = MethodHandleNatives.staticFieldBase(f); long foffset = MethodHandleNatives.staticFieldOffset(f); if (!type.isPrimitive()) { ! assert(!f.isFlatValue()); // static field is not flattened return f.isFinal() && !isWriteAllowedOnFinalFields ? new VarHandleReferences.FieldStaticReadOnly(base, foffset, type) : new VarHandleReferences.FieldStaticReadWrite(base, foffset, type, f.canBeNull()); } else if (type == boolean.class) { --- 98,108 ---- UNSAFE.ensureClassInitialized(refc); Object base = MethodHandleNatives.staticFieldBase(f); long foffset = MethodHandleNatives.staticFieldOffset(f); if (!type.isPrimitive()) { ! assert(!f.isFlattened()); // static field is not flattened return f.isFinal() && !isWriteAllowedOnFinalFields ? new VarHandleReferences.FieldStaticReadOnly(base, foffset, type) : new VarHandleReferences.FieldStaticReadWrite(base, foffset, type, f.canBeNull()); } else if (type == boolean.class) {
< prev index next >