diff options
author | ajreynol <andrew.j.reynolds@gmail.com> | 2016-11-03 15:09:12 -0500 |
---|---|---|
committer | ajreynol <andrew.j.reynolds@gmail.com> | 2016-11-03 15:09:26 -0500 |
commit | b6d5d0b11cf7624cd7a3e0a2f6f77d83d2f7001a (patch) | |
tree | b0e5acbce9023c28bf1bb85eee5da97b79c94561 /src/theory/quantifiers_engine.cpp | |
parent | 8a8455d955c084c9a9f7add1f4e4da6b1dbc35eb (diff) |
Add priorities to getNextDecision. Properly handle case for finite types + unbounded heaps in sep logic. Fix another simple memory leak in sygus.
Diffstat (limited to 'src/theory/quantifiers_engine.cpp')
-rw-r--r-- | src/theory/quantifiers_engine.cpp | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/src/theory/quantifiers_engine.cpp b/src/theory/quantifiers_engine.cpp index 95b01bc7b..22bfa948f 100644 --- a/src/theory/quantifiers_engine.cpp +++ b/src/theory/quantifiers_engine.cpp @@ -767,14 +767,17 @@ void QuantifiersEngine::propagate( Theory::Effort level ){ } } -Node QuantifiersEngine::getNextDecisionRequest(){ +Node QuantifiersEngine::getNextDecisionRequest( unsigned& priority ){ + unsigned min_priority; + Node dec; for( unsigned i=0; i<d_modules.size(); i++ ){ - Node n = d_modules[i]->getNextDecisionRequest(); - if( !n.isNull() ){ - return n; + Node n = d_modules[i]->getNextDecisionRequest( priority ); + if( !n.isNull() && ( dec.isNull() || priority<min_priority ) ){ + dec = n; + min_priority = priority; } } - return Node::null(); + return dec; } quantifiers::TermDbSygus* QuantifiersEngine::getTermDatabaseSygus() { |