< prev index next >

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

Print this page

        

*** 32,43 **** static VarHandle makeFieldHandle(MemberName f, Class<?> refc, Class<?> type, boolean isWriteAllowedOnFinalFields) { if (!f.isStatic()) { long foffset = MethodHandleNatives.objectFieldOffset(f); if (!type.isPrimitive()) { return f.isFinal() && !isWriteAllowedOnFinalFields ! ? new VarHandleObjects.FieldInstanceReadOnly(refc, foffset, type) ! : new VarHandleObjects.FieldInstanceReadWrite(refc, foffset, type); } else if (type == boolean.class) { return f.isFinal() && !isWriteAllowedOnFinalFields ? new VarHandleBooleans.FieldInstanceReadOnly(refc, foffset) : new VarHandleBooleans.FieldInstanceReadWrite(refc, foffset); --- 32,43 ---- static VarHandle makeFieldHandle(MemberName f, Class<?> refc, Class<?> type, boolean isWriteAllowedOnFinalFields) { if (!f.isStatic()) { long foffset = MethodHandleNatives.objectFieldOffset(f); if (!type.isPrimitive()) { return f.isFinal() && !isWriteAllowedOnFinalFields ! ? new VarHandleReferences.FieldInstanceReadOnly(refc, foffset, type) ! : new VarHandleReferences.FieldInstanceReadWrite(refc, foffset, type); } else if (type == boolean.class) { return f.isFinal() && !isWriteAllowedOnFinalFields ? new VarHandleBooleans.FieldInstanceReadOnly(refc, foffset) : new VarHandleBooleans.FieldInstanceReadWrite(refc, foffset);
*** 93,104 **** Object base = MethodHandleNatives.staticFieldBase(f); long foffset = MethodHandleNatives.staticFieldOffset(f); if (!type.isPrimitive()) { return f.isFinal() && !isWriteAllowedOnFinalFields ! ? new VarHandleObjects.FieldStaticReadOnly(base, foffset, type) ! : new VarHandleObjects.FieldStaticReadWrite(base, foffset, type); } else if (type == boolean.class) { return f.isFinal() && !isWriteAllowedOnFinalFields ? new VarHandleBooleans.FieldStaticReadOnly(base, foffset) : new VarHandleBooleans.FieldStaticReadWrite(base, foffset); --- 93,104 ---- Object base = MethodHandleNatives.staticFieldBase(f); long foffset = MethodHandleNatives.staticFieldOffset(f); if (!type.isPrimitive()) { return f.isFinal() && !isWriteAllowedOnFinalFields ! ? new VarHandleReferences.FieldStaticReadOnly(base, foffset, type) ! : new VarHandleReferences.FieldStaticReadWrite(base, foffset, type); } else if (type == boolean.class) { return f.isFinal() && !isWriteAllowedOnFinalFields ? new VarHandleBooleans.FieldStaticReadOnly(base, foffset) : new VarHandleBooleans.FieldStaticReadWrite(base, foffset);
*** 153,163 **** int aoffset = UNSAFE.arrayBaseOffset(arrayClass); int ascale = UNSAFE.arrayIndexScale(arrayClass); int ashift = 31 - Integer.numberOfLeadingZeros(ascale); if (!componentType.isPrimitive()) { ! return new VarHandleObjects.Array(aoffset, ashift, arrayClass); } else if (componentType == boolean.class) { return new VarHandleBooleans.Array(aoffset, ashift); } else if (componentType == byte.class) { --- 153,163 ---- int aoffset = UNSAFE.arrayBaseOffset(arrayClass); int ascale = UNSAFE.arrayIndexScale(arrayClass); int ashift = 31 - Integer.numberOfLeadingZeros(ascale); if (!componentType.isPrimitive()) { ! return new VarHandleReferences.Array(aoffset, ashift, arrayClass); } else if (componentType == boolean.class) { return new VarHandleBooleans.Array(aoffset, ashift); } else if (componentType == byte.class) {
< prev index next >