Merge branch 'hamed' of ssh://plrg.eecs.uci.edu/home/git/constraint_compiler into...
[satune.git] / src / csolver.cc
index f7ea1018c5e456f2d9a234a45b1ae5f3e575fca9..9dff5570277b7ecd3839aa4e67e101bb74aae22e 100644 (file)
@@ -519,8 +519,14 @@ void CSolver::addConstraint(BooleanEdge constraint) {
                        BooleanLogic *b = (BooleanLogic *) constraint.getBoolean();
                        if (!constraint.isNegated()) {
                                if (b->op == SATC_AND) {
-                                       for (uint i = 0; i < b->inputs.getSize(); i++) {
-                                               addConstraint(b->inputs.get(i));
+                                       uint size = b->inputs.getSize();
+                                       //Handle potential concurrent modification
+                                       BooleanEdge array[size];
+                                       for (uint i = 0; i < size; i++) {
+                                               array[i] = b->inputs.get(i);
+                                       }
+                                       for (uint i = 0; i < size; i++) {
+                                               addConstraint(array[i]);
                                        }
                                        return;
                                }