summaryrefslogtreecommitdiff
path: root/src/theory/quantifiers/instantiation_engine.cpp
diff options
context:
space:
mode:
authorTim King <taking@cs.nyu.edu>2017-09-25 13:02:48 -0700
committerAndres Noetzli <andres.noetzli@gmail.com>2017-09-25 13:02:48 -0700
commite849f5c87c6a92cc06cfae611ce0cab0851e6905 (patch)
treed0aaef7466cd81d51670aa740aca488bb8739700 /src/theory/quantifiers/instantiation_engine.cpp
parentc056e0711c6321b5d5b74e394cac3687dcade5b9 (diff)
Fixing CID 1362917: There was a branch where d_issup was not initialized. Switching members of InstantiationEngine to uniqur_ptr to simplify such cases. (#1133)
Diffstat (limited to 'src/theory/quantifiers/instantiation_engine.cpp')
-rw-r--r--src/theory/quantifiers/instantiation_engine.cpp47
1 files changed, 22 insertions, 25 deletions
diff --git a/src/theory/quantifiers/instantiation_engine.cpp b/src/theory/quantifiers/instantiation_engine.cpp
index c90a3c386..1cdd224e7 100644
--- a/src/theory/quantifiers/instantiation_engine.cpp
+++ b/src/theory/quantifiers/instantiation_engine.cpp
@@ -29,30 +29,27 @@ using namespace CVC4::theory;
using namespace CVC4::theory::quantifiers;
using namespace CVC4::theory::inst;
-InstantiationEngine::InstantiationEngine( QuantifiersEngine* qe ) :
-QuantifiersModule( qe ){
- if( options::eMatching() ){
- //these are the instantiation strategies for E-matching
- //user-provided patterns
- if( options::userPatternsQuant()!=USER_PAT_MODE_IGNORE ){
- d_isup = new InstStrategyUserPatterns( d_quantEngine );
- d_instStrategies.push_back( d_isup );
+InstantiationEngine::InstantiationEngine(QuantifiersEngine* qe)
+ : QuantifiersModule(qe),
+ d_instStrategies(),
+ d_isup(),
+ d_i_ag(),
+ d_quants() {
+ if (options::eMatching()) {
+ // these are the instantiation strategies for E-matching
+ // user-provided patterns
+ if (options::userPatternsQuant() != USER_PAT_MODE_IGNORE) {
+ d_isup.reset(new InstStrategyUserPatterns(d_quantEngine));
+ d_instStrategies.push_back(d_isup.get());
}
- //auto-generated patterns
- d_i_ag = new InstStrategyAutoGenTriggers( d_quantEngine );
- d_instStrategies.push_back( d_i_ag );
- }else{
- d_isup = NULL;
- d_i_ag = NULL;
+ // auto-generated patterns
+ d_i_ag.reset(new InstStrategyAutoGenTriggers(d_quantEngine));
+ d_instStrategies.push_back(d_i_ag.get());
}
}
-InstantiationEngine::~InstantiationEngine() {
- delete d_i_ag;
- delete d_isup;
-}
-
+InstantiationEngine::~InstantiationEngine() {}
void InstantiationEngine::presolve() {
for( unsigned i=0; i<d_instStrategies.size(); ++i ){
@@ -194,14 +191,14 @@ void InstantiationEngine::registerQuantifier( Node f ){
}
}
-void InstantiationEngine::addUserPattern( Node q, Node pat ){
- if( d_isup ){
- d_isup->addUserPattern( q, pat );
+void InstantiationEngine::addUserPattern(Node q, Node pat) {
+ if (d_isup) {
+ d_isup->addUserPattern(q, pat);
}
}
-void InstantiationEngine::addUserNoPattern( Node q, Node pat ){
- if( d_i_ag ){
- d_i_ag->addUserNoPattern( q, pat );
+void InstantiationEngine::addUserNoPattern(Node q, Node pat) {
+ if (d_i_ag) {
+ d_i_ag->addUserNoPattern(q, pat);
}
}
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback