diff options
Diffstat (limited to 'src/decision')
-rw-r--r-- | src/decision/decision_engine.cpp | 7 | ||||
-rw-r--r-- | src/decision/decision_engine.h | 7 |
2 files changed, 12 insertions, 2 deletions
diff --git a/src/decision/decision_engine.cpp b/src/decision/decision_engine.cpp index 687515ff0..f634a28d9 100644 --- a/src/decision/decision_engine.cpp +++ b/src/decision/decision_engine.cpp @@ -82,6 +82,13 @@ void DecisionEngine::enableStrategy(DecisionStrategy* ds) d_enabledStrategies.push_back(ds); } +void DecisionEngine::clearStrategies(){ + for(unsigned i = 0; i < d_enabledStrategies.size(); ++i){ + delete d_enabledStrategies[i]; + } + d_enabledStrategies.clear(); + d_needIteSkolemMap.clear(); +} bool DecisionEngine::isRelevant(SatVariable var) { diff --git a/src/decision/decision_engine.h b/src/decision/decision_engine.h index bc071f7f6..f28b13774 100644 --- a/src/decision/decision_engine.h +++ b/src/decision/decision_engine.h @@ -96,6 +96,10 @@ public: /* enables decision stragies based on options */ void init(); + /* clears all of the strategies */ + void clearStrategies(); + + /** * This is called by SmtEngine, at shutdown time, just before * destruction. It is important because there are destruction @@ -106,8 +110,7 @@ public: d_engineState = 2; Trace("decision") << "Shutting down decision engine" << std::endl; - for(unsigned i = 0; i < d_enabledStrategies.size(); ++i) - delete d_enabledStrategies[i]; + clearStrategies(); } // Interface for External World to use our services |