X-Git-Url: http://demsky.eecs.uci.edu/git/?a=blobdiff_plain;f=src%2Fcsolver.cc;h=14f902b85e846c5f7c6e0a7e1bc76eb03705a9a3;hb=3267d387309bb4d2aa130a940f386b419652a956;hp=c81e2f3e1c1941789dc0259467dc1f206881193e;hpb=d0d465672d8745d091999e9d5036260dbc47c8dd;p=satune.git diff --git a/src/csolver.cc b/src/csolver.cc index c81e2f3..14f902b 100644 --- a/src/csolver.cc +++ b/src/csolver.cc @@ -39,7 +39,7 @@ CSolver::CSolver() : tuner(NULL), elapsedTime(0), satsolverTimeout(NOTIMEOUT), - alloyEncoder(NULL) + interpreter(NULL) { satEncoder = new SATEncoder(this); } @@ -82,6 +82,10 @@ CSolver::~CSolver() { for (uint i = 0; i < size; i++) { delete allFunctions.get(i); } + + if(interpreter != NULL){ + delete interpreter; + } delete boolTrue.getBoolean(); delete satEncoder; @@ -606,9 +610,9 @@ int CSolver::solve() { } int result = IS_INDETER; if(useAlloyCompiler()){ - alloyEncoder->encode(); + interpreter->encode(); model_print("Problem encoded in Alloy\n"); - result = alloyEncoder->solve(); + result = interpreter->solve(); model_print("Problem solved by Alloy\n"); } else{ @@ -676,8 +680,8 @@ int CSolver::solve() { } void CSolver::setAlloyEncoder(){ - if(alloyEncoder == NULL){ - alloyEncoder = new AlloyEnc(this); + if(interpreter == NULL){ + interpreter = new AlloyEnc(this); } } @@ -699,7 +703,7 @@ uint64_t CSolver::getElementValue(Element *element) { case ELEMSET: case ELEMCONST: case ELEMFUNCRETURN: - return useAlloyCompiler()? alloyEncoder->getValue(element): + return useAlloyCompiler()? interpreter->getValue(element): getElementValueSATTranslator(this, element); default: ASSERT(0); @@ -711,7 +715,7 @@ bool CSolver::getBooleanValue(BooleanEdge bedge) { Boolean *boolean = bedge.getBoolean(); switch (boolean->type) { case BOOLEANVAR: - return useAlloyCompiler()? alloyEncoder->getBooleanValue(boolean): + return useAlloyCompiler()? interpreter->getBooleanValue(boolean): getBooleanVariableValueSATTranslator(this, boolean); default: ASSERT(0);