/** * Simply add the instance to each relevant points-to set. */ @Override public byte evaluate(PointsToSetVariable dummyLHS, PointsToSetVariable var) { PointsToSetVariable ref = var; if (ref.size() == 0) { return NOT_CHANGED; } IntSet value = ref.getValue(); final MutableBoolean sideEffect = new MutableBoolean(); IntSetAction action = i -> { InstanceKey I = system.getInstanceKey(i); if (!representsNullType(I)) { PointerKey p = getPointerKeyForInstanceField(I, field); if (p != null) { sideEffect.b |= system.newConstraint(p, instance); } } }; if (priorInstances != null) { value.foreachExcluding(priorInstances, action); priorInstances.addAll(value); } else { value.foreach(action); } byte sideEffectMask = sideEffect.b ? (byte) SIDE_EFFECT_MASK : 0; return (byte) (NOT_CHANGED | sideEffectMask); }
/** * Simply add the instance to each relevant points-to set. */ @Override public byte evaluate(PointsToSetVariable dummyLHS, PointsToSetVariable var) { PointsToSetVariable ref = var; if (ref.size() == 0) { return NOT_CHANGED; } IntSet value = ref.getValue(); final MutableBoolean sideEffect = new MutableBoolean(); IntSetAction action = i -> { InstanceKey I = system.getInstanceKey(i); if (!representsNullType(I)) { PointerKey p = getPointerKeyForInstanceField(I, field); if (p != null) { sideEffect.b |= system.newConstraint(p, instance); } } }; if (priorInstances != null) { value.foreachExcluding(priorInstances, action); priorInstances.addAll(value); } else { value.foreach(action); } byte sideEffectMask = sideEffect.b ? (byte) SIDE_EFFECT_MASK : 0; return (byte) (NOT_CHANGED | sideEffectMask); }
final IntSet oldObjs = previousPtrs[rhsIndex]; currentObjs.foreachExcluding(oldObjs, x -> new CrossProductRec(constParams, call, node, v -> { IClass recv = null;
final IntSet oldObjs = previousPtrs[rhsIndex]; currentObjs.foreachExcluding(oldObjs, x -> new CrossProductRec(constParams, call, node, v -> { IClass recv = null;
value.foreachExcluding(priorInstances, action); priorInstances.addAll(value); } else {
value.foreachExcluding(priorInstances, action); priorInstances.addAll(value); } else {
value.foreachExcluding(priorInstances, action); priorInstances.addAll(value); } else {
value.foreachExcluding(priorInstances, action); priorInstances.addAll(value); } else {
value.foreachExcluding(previousReceivers, action);
value.foreachExcluding(previousReceivers, action);
value.foreachExcluding(priorInstances, action); priorInstances.addAll(value); } else {
value.foreachExcluding(priorInstances, action); priorInstances.addAll(value); } else {