From: Hamed Gorjiara Date: Tue, 26 Mar 2019 18:38:40 +0000 (-0700) Subject: Bug fix for long array X-Git-Url: http://plrg.eecs.uci.edu/git/?p=satune.git;a=commitdiff_plain;h=dd394251eb1578f17507f5da84791113e1e9cef7;hp=cded0761f9debbceab093dcfc58682e129f95fc9;ds=sidebyside Bug fix for long array --- diff --git a/src/Backend/constraint.cc b/src/Backend/constraint.cc old mode 100644 new mode 100755 index 45f2c5f..d69e194 --- a/src/Backend/constraint.cc +++ b/src/Backend/constraint.cc @@ -192,13 +192,24 @@ Edge createNode(NodeType type, uint numEdges, Edge *edges) { } Edge constraintOR(CNF *cnf, uint numEdges, Edge *edges) { - Edge edgearray[numEdges]; + if (numEdges < 200000) { + Edge edgearray[numEdges]; - for (uint i = 0; i < numEdges; i++) { - edgearray[i] = constraintNegate(edges[i]); + for (uint i = 0; i < numEdges; i++) { + edgearray[i] = constraintNegate(edges[i]); + } + Edge eand = constraintAND(cnf, numEdges, edgearray); + return constraintNegate(eand); + } else { + Edge * edgearray=(Edge *)ourmalloc(numEdges*sizeof(Edge)); + + for (uint i = 0; i < numEdges; i++) { + edgearray[i] = constraintNegate(edges[i]); + } + Edge eand = constraintAND(cnf, numEdges, edgearray); + ourfree(edgearray); + return constraintNegate(eand); } - Edge eand = constraintAND(cnf, numEdges, edgearray); - return constraintNegate(eand); } Edge constraintOR2(CNF *cnf, Edge left, Edge right) { diff --git a/src/Backend/satencoder.cc b/src/Backend/satencoder.cc old mode 100644 new mode 100755