protected void newFieldRead(CGNode opNode, int objVn, int fieldsVn, final PointerKey lhs) { newFieldOperation(opNode, objVn, fieldsVn, true, new ReflectedFieldAction() { @Override public void dump(AbstractFieldPointerKey fieldKey, boolean constObj, boolean constProp) { System.err.println(("read " + lhs + " from " + fieldKey + ' ' + constObj + ", " + constProp)); } @Override public void action(AbstractFieldPointerKey fieldKey) { if (!representsNullType(fieldKey.getInstanceKey())) { system.newConstraint(lhs, assignOperator, fieldKey); AbstractFieldPointerKey unknown = getBuilder().fieldKeyForUnknownWrites(fieldKey); if (unknown != null) { system.newConstraint(lhs, assignOperator, unknown); } } } }); } }
protected void newFieldRead(CGNode opNode, int objVn, int fieldsVn, final PointerKey lhs) { newFieldOperation(opNode, objVn, fieldsVn, true, new ReflectedFieldAction() { @Override public void dump(AbstractFieldPointerKey fieldKey, boolean constObj, boolean constProp) { System.err.println(("read " + lhs + " from " + fieldKey + ' ' + constObj + ", " + constProp)); } @Override public void action(AbstractFieldPointerKey fieldKey) { if (!representsNullType(fieldKey.getInstanceKey())) { system.newConstraint(lhs, assignOperator, fieldKey); AbstractFieldPointerKey unknown = getBuilder().fieldKeyForUnknownWrites(fieldKey); if (unknown != null) { system.newConstraint(lhs, assignOperator, unknown); } } } }); } }
public void newFieldWrite(CGNode opNode, int objVn, int fieldsVn, final PointerKey rhs) { newFieldOperation(opNode, objVn, fieldsVn, false, new NormalWriter(rhs)); }
public void newFieldWrite(CGNode opNode, int objVn, int fieldsVn, final InstanceKey[] rhsFixedValues) { newFieldOperation(opNode, objVn, fieldsVn, false, new ConstantWriter(rhsFixedValues)); }
public void newFieldWrite(CGNode opNode, int objVn, int fieldsVn, final PointerKey rhs) { newFieldOperation(opNode, objVn, fieldsVn, false, new NormalWriter(rhs)); }
public void newFieldWrite(CGNode opNode, int objVn, int fieldsVn, final InstanceKey[] rhsFixedValues) { newFieldOperation(opNode, objVn, fieldsVn, false, new ConstantWriter(rhsFixedValues)); }