From d89f599ea7d8cb6637fdf0d49c5fab5531a56cd7 Mon Sep 17 00:00:00 2001 From: bdemsky Date: Sat, 1 Jul 2017 00:17:10 -0700 Subject: [PATCH] mods --- src/Backend/nodeedge.c | 24 ++++++++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) diff --git a/src/Backend/nodeedge.c b/src/Backend/nodeedge.c index e5c50b0..533a9f1 100644 --- a/src/Backend/nodeedge.c +++ b/src/Backend/nodeedge.c @@ -13,6 +13,12 @@ CNF * createCNF() { } void deleteCNF(CNF * cnf) { + for(uint i=0;icapacity;i++) { + Node *n=cnf->node_array[i]; + if (n!=NULL) + ourfree(n); + } + ourfree(cnf->node_array); ourfree(cnf); } @@ -116,7 +122,14 @@ Edge constraintAND(CNF * cnf, uint numEdges, Edge * edges) { } Edge constraintAND2(CNF * cnf, Edge left, Edge right) { - Edge edges[2]={left, right}; + Edge edges[2]; + if ((uintptr_t)left.node_ptr<(uintptr_t)right.node_ptr) { + edges[0]=left; + edges[1]=right; + } else { + edges[0]=right; + edges[1]=left; + } return createNode(cnf, NodeType_AND, 2, edges); } @@ -129,7 +142,14 @@ Edge constraintIMPLIES(CNF * cnf, Edge left, Edge right) { } Edge constraintIFF(CNF * cnf, Edge left, Edge right) { - Edge edges[]={left, right}; + Edge edges[2]; + if ((uintptr_t)left.node_ptr < (uintptr_t) right.node_ptr) { + edges[0]=left; + edges[1]=right; + } else { + edges[0]=right; + edges[1]=left; + } return createNode(cnf, NodeType_IFF, 2, edges); } -- 2.34.1