From 09f6a69ae4cc6796fe901ae9d22e0cf62a5ea2fb Mon Sep 17 00:00:00 2001 From: Hamed Gorjiara Date: Wed, 1 Nov 2017 17:56:52 -0700 Subject: [PATCH] Bug fix for serializer + adding more debug info inr printing functions --- src/AST/boolean.cc | 10 +++++----- src/AST/element.cc | 6 +++--- src/AST/function.cc | 4 ++-- src/AST/order.cc | 2 +- src/AST/set.cc | 2 +- src/AST/table.cc | 2 +- src/Serialize/serializer.cc | 1 + src/config.h | 1 - src/csolver.cc | 1 + src/mymemory.h | 2 -- 10 files changed, 15 insertions(+), 16 deletions(-) diff --git a/src/AST/boolean.cc b/src/AST/boolean.cc index 939f937..c576268 100644 --- a/src/AST/boolean.cc +++ b/src/AST/boolean.cc @@ -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(); diff --git a/src/AST/element.cc b/src/AST/element.cc index f575a90..ffe7acc 100644 --- a/src/AST/element.cc +++ b/src/AST/element.cc @@ -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(); diff --git a/src/AST/function.cc b/src/AST/function.cc index c385512..ccd89dd 100644 --- a/src/AST/function.cc +++ b/src/AST/function.cc @@ -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" ); } diff --git a/src/AST/order.cc b/src/AST/order.cc index f3ccde4..315b112 100644 --- a/src/AST/order.cc +++ b/src/AST/order.cc @@ -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"); } diff --git a/src/AST/set.cc b/src/AST/set.cc index 52494e3..d45791a 100644 --- a/src/AST/set.cc +++ b/src/AST/set.cc @@ -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 { diff --git a/src/AST/table.cc b/src/AST/table.cc index 5786b17..513935d 100644 --- a/src/AST/table.cc +++ b/src/AST/table.cc @@ -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(); diff --git a/src/Serialize/serializer.cc b/src/Serialize/serializer.cc index 4a97074..cfad4e8 100644 --- a/src/Serialize/serializer.cc +++ b/src/Serialize/serializer.cc @@ -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; diff --git a/src/config.h b/src/config.h index e34b828..5ce22b0 100644 --- a/src/config.h +++ b/src/config.h @@ -19,7 +19,6 @@ //#define CONFIG_DEBUG #endif -#define SATCHECK_CONFIG #ifndef CONFIG_ASSERT #define CONFIG_ASSERT diff --git a/src/csolver.cc b/src/csolver.cc index 160e686..e844e79 100644 --- a/src/csolver.cc +++ b/src/csolver.cc @@ -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); diff --git a/src/mymemory.h b/src/mymemory.h index 97e177c..92fb0fe 100644 --- a/src/mymemory.h +++ b/src/mymemory.h @@ -19,8 +19,6 @@ #include "config.h" -#define SATCHECK_CONFIG - /* void * ourmalloc(size_t size); void ourfree(void *ptr); -- 2.34.1