Fix memory leaks
[satune.git] / src / csolver.cc
index e2bb4bc278f189c5dcd3f1cb9365ed3701873109..64f0851fa74061e507a96569847ab064edda5fd1 100644 (file)
@@ -10,8 +10,8 @@
 #include "satencoder.h"
 #include "sattranslator.h"
 #include "tunable.h"
-#include "orderencoder.h"
 #include "polarityassignment.h"
+#include "orderdecompose.h"
 
 CSolver::CSolver() : unsat(false) {
        tuner = allocTuner();
@@ -155,7 +155,7 @@ Boolean *CSolver::applyPredicate(Predicate *predicate, Element **inputs, uint nu
 }
 
 Boolean *CSolver::applyPredicateTable(Predicate *predicate, Element **inputs, uint numInputs, Boolean *undefinedStatus) {
-       Boolean *boolean = new BooleanPredicate(predicate, inputs, numInputs, undefinedStatus);
+       BooleanPredicate *boolean = new BooleanPredicate(predicate, inputs, numInputs, undefinedStatus);
        allBooleans.push(boolean);
        return boolean;
 }
@@ -181,9 +181,9 @@ Boolean *CSolver::orderConstraint(Order *order, uint64_t first, uint64_t second)
 }
 
 int CSolver::startEncoding() {
-       naiveEncodingDecision(this);
        computePolarities(this);
        orderAnalysis(this);
+       naiveEncodingDecision(this);
        encodeAllSATEncoder(this, satEncoder);
        int result = solveCNF(satEncoder->cnf);
        model_print("sat_solver's result:%d\tsolutionSize=%d\n", result, satEncoder->cnf->solver->solutionsize);