Bug fix for serializer + adding more debug info inr printing functions
authorHamed Gorjiara <hgorjiar@uci.edu>
Thu, 2 Nov 2017 00:56:52 +0000 (17:56 -0700)
committerHamed Gorjiara <hgorjiar@uci.edu>
Thu, 2 Nov 2017 00:56:52 +0000 (17:56 -0700)
src/AST/boolean.cc
src/AST/element.cc
src/AST/function.cc
src/AST/order.cc
src/AST/set.cc
src/AST/table.cc
src/Serialize/serializer.cc
src/config.h
src/csolver.cc
src/mymemory.h

index 939f937..c576268 100644 (file)
@@ -115,11 +115,11 @@ void BooleanVar::serialize(Serializer *serializer) {
 }
 
 void BooleanVar::print() {
-       model_print("BooleanVar:%lu\n", (uintptr_t)this);
+       model_print("BooleanVar<%p>\n", this);
 }
 
 void BooleanConst::print() {
-       model_print("BooleanConst:%s\n", istrue ? "TRUE" : "FALSE");
+       model_print("BooleanConst<%p>:%s\n", this, istrue ? "TRUE" : "FALSE");
 }
 
 void BooleanOrder::serialize(Serializer *serializer) {
@@ -137,7 +137,7 @@ void BooleanOrder::serialize(Serializer *serializer) {
 }
 
 void BooleanOrder::print() {
-       model_print("{BooleanOrder: First= %lu, Second = %lu on Order:\n", first, second);
+       model_print("{BooleanOrder<%p>: First= %lu, Second = %lu on Order:\n", this, first, second);
        order->print();
        model_print("}\n");
 }
@@ -169,7 +169,7 @@ void BooleanPredicate::serialize(Serializer *serializer) {
 }
 
 void BooleanPredicate::print() {
-       model_print("{BooleanPredicate:\n");
+       model_print("{BooleanPredicate<%p>:\n", this);
        predicate->print();
        model_print("elements:\n");
        uint size = inputs.getSize();
@@ -201,7 +201,7 @@ void BooleanLogic::serialize(Serializer *serializer) {
 }
 
 void BooleanLogic::print() {
-       model_print("{BooleanLogic: %s\n",
+       model_print("{BooleanLogic<%p>: %s\n", this,
                                                        op == SATC_AND ? "AND" : op == SATC_OR ? "OR" : op == SATC_NOT ? "NOT" :
                                                        op == SATC_XOR ? "XOR" : op == SATC_IFF ? "IFF" : "IMPLIES");
        uint size = inputs.getSize();
index f575a90..ffe7acc 100644 (file)
@@ -78,7 +78,7 @@ void ElementSet::serialize(Serializer *serializer) {
 }
 
 void ElementSet::print() {
-       model_print("{ElementSet:");
+       model_print("{ElementSet<%p>:", this);
        set->print();
        model_print(" %p ", this);
        getElementEncoding()->print();
@@ -101,7 +101,7 @@ void ElementConst::serialize(Serializer *serializer) {
 }
 
 void ElementConst::print() {
-       model_print("{ElementConst: %" PRIu64 "}\n", value);
+       model_print("{ElementConst<%p>: %" PRIu64 "}\n", this, value);
 }
 
 void ElementFunction::serialize(Serializer *serializer) {
@@ -131,7 +131,7 @@ void ElementFunction::serialize(Serializer *serializer) {
 }
 
 void ElementFunction::print() {
-       model_print("{ElementFunction:\n");
+       model_print("{ElementFunction<%p>:\n", this);
        function->print();
        model_print("Elements:\n");
        uint size = inputs.getSize();
index c385512..ccd89dd 100644 (file)
@@ -83,7 +83,7 @@ void FunctionTable::serialize(Serializer *serializer) {
 }
 
 void FunctionTable::print() {
-       model_print("{FunctionTable:\n");
+       model_print("{FunctionTable<%p>:\n", this);
        table->print();
        model_print("}\n");
 }
@@ -115,5 +115,5 @@ void FunctionOperator::serialize(Serializer *serializer) {
 }
 
 void FunctionOperator::print() {
-       model_print("{FunctionOperator: %s}\n", op == SATC_ADD ? "ADD" : "SUB" );
+       model_print("{FunctionOperator<%p>: %s}\n", this, op == SATC_ADD ? "ADD" : "SUB" );
 }
index f3ccde4..315b112 100644 (file)
@@ -60,7 +60,7 @@ void Order::serialize(Serializer *serializer) {
 }
 
 void Order::print() {
-       model_print("{Order on Set:\n");
+       model_print("{Order<%p> on Set:\n", this);
        set->print();
        model_print("}\n");
 }
index 52494e3..d45791a 100644 (file)
@@ -155,7 +155,7 @@ void Set::serialize(Serializer *serializer) {
 }
 
 void Set::print() {
-       model_print("{Set:");
+       model_print("{Set<%p>:", this);
        if (isRange) {
                model_print("Range: low=%lu, high=%lu}", low, high);
        } else {
index 5786b17..513935d 100644 (file)
@@ -98,7 +98,7 @@ void Table::serialize(Serializer *serializer) {
 
 
 void Table::print() {
-       model_print("{Table:\n");
+       model_print("{Table<%p>:\n", this);
        SetIteratorTableEntry *iterator = getEntries();
        while (iterator->hasNext()) {
                TableEntry *entry = iterator->next();
index 4a97074..cfad4e8 100644 (file)
@@ -62,6 +62,7 @@ void Serializer::mywrite(const void *__buf, size_t __n) {
                        if (spacefree < __n) {
                                flushBuffer();
                                towrite += datatowrite;
+                                __n-=datatowrite;
                        } else if (spacefree == __n) {
                                flushBuffer();
                                return;
index e34b828..5ce22b0 100644 (file)
@@ -19,7 +19,6 @@
 //#define CONFIG_DEBUG
 #endif
 
-#define SATCHECK_CONFIG
 
 #ifndef CONFIG_ASSERT
 #define CONFIG_ASSERT
index 160e686..e844e79 100644 (file)
@@ -40,6 +40,7 @@ CSolver::CSolver() :
 /** This function tears down the solver and the entire AST */
 
 CSolver::~CSolver() {
+       serialize();
        uint size = allBooleans.getSize();
        for (uint i = 0; i < size; i++) {
                delete allBooleans.get(i);
index 97e177c..92fb0fe 100644 (file)
@@ -19,8 +19,6 @@
 
 #include "config.h"
 
-#define SATCHECK_CONFIG
-
 /*
    void * ourmalloc(size_t size);
    void ourfree(void *ptr);