From 8806dcf7185b7d3dd770ca64bbc0774bcbe8c90c Mon Sep 17 00:00:00 2001 From: Hamed Gorjiara Date: Tue, 1 May 2018 16:28:58 -0700 Subject: [PATCH 1/1] reverting unnecessary changes in clone --- src/AST/boolean.cc | 21 +++------------------ src/AST/element.cc | 13 ++----------- 2 files changed, 5 insertions(+), 29 deletions(-) diff --git a/src/AST/boolean.cc b/src/AST/boolean.cc index 46e277a..c576268 100644 --- a/src/AST/boolean.cc +++ b/src/AST/boolean.cc @@ -71,32 +71,19 @@ Boolean *BooleanVar::clone(CSolver *solver, CloneMap *map) { } Boolean *BooleanOrder::clone(CSolver *solver, CloneMap *map) { - Boolean *b = (Boolean *) map->get(this); - if (b != NULL) - return b; Order *ordercopy = order->clone(solver, map); - b= solver->orderConstraint(ordercopy, first, second).getRaw(); - map->put(this, b); - return b; + return solver->orderConstraint(ordercopy, first, second).getRaw(); } Boolean *BooleanLogic::clone(CSolver *solver, CloneMap *map) { - Boolean *b = (Boolean *) map->get(this); - if (b != NULL) - return b; BooleanEdge array[inputs.getSize()]; for (uint i = 0; i < inputs.getSize(); i++) { array[i] = cloneEdge(solver, map, inputs.get(i)); } - b= solver->applyLogicalOperation(op, array, inputs.getSize()).getRaw(); - map->put(this, b); - return b; + return solver->applyLogicalOperation(op, array, inputs.getSize()).getRaw(); } Boolean *BooleanPredicate::clone(CSolver *solver, CloneMap *map) { - Boolean *b = (Boolean *) map->get(this); - if (b != NULL) - return b; Element *array[inputs.getSize()]; for (uint i = 0; i < inputs.getSize(); i++) { array[i] = inputs.get(i)->clone(solver, map); @@ -104,9 +91,7 @@ Boolean *BooleanPredicate::clone(CSolver *solver, CloneMap *map) { Predicate *pred = predicate->clone(solver, map); BooleanEdge defstatus = undefStatus ? cloneEdge(solver, map, undefStatus) : BooleanEdge(); - b= solver->applyPredicateTable(pred, array, inputs.getSize(), defstatus).getRaw(); - map->put(this, b); - return b; + return solver->applyPredicateTable(pred, array, inputs.getSize(), defstatus).getRaw(); } void BooleanPredicate::updateParents() { diff --git a/src/AST/element.cc b/src/AST/element.cc index 54a5c41..d09db20 100644 --- a/src/AST/element.cc +++ b/src/AST/element.cc @@ -35,12 +35,7 @@ ElementConst::ElementConst(uint64_t _value, Set *_set) : } Element *ElementConst::clone(CSolver *solver, CloneMap *map) { - Element *e = (Element *) map->get(this); - if (e != NULL) - return e; - e= solver->getElementConst(type, value); - map->put(this,e); - return e; + return solver->getElementConst(type, value); } Element *ElementSet::clone(CSolver *solver, CloneMap *map) { @@ -53,15 +48,11 @@ Element *ElementSet::clone(CSolver *solver, CloneMap *map) { } Element *ElementFunction::clone(CSolver *solver, CloneMap *map) { - Element *e = (Element *) map->get(this); - if (e != NULL) - return e; Element *array[inputs.getSize()]; for (uint i = 0; i < inputs.getSize(); i++) { array[i] = inputs.get(i)->clone(solver, map); } - e = solver->applyFunction(function->clone(solver, map), array, inputs.getSize(), overflowstatus->clone(solver, map)); - map->put(this,e); + Element *e = solver->applyFunction(function->clone(solver, map), array, inputs.getSize(), overflowstatus->clone(solver, map)); return e; } -- 2.34.1