Code could segfault if the number of wrongly applied selector applications was different from correctly applied ones.
Assert(!d_op.isNull());
}
-void CandidateGeneratorQE::resetInstantiationRound(){
- d_term_iter_limit = d_qe->getTermDatabase()->getNumGroundTerms( d_op );
-}
-
void CandidateGeneratorQE::reset(Node eqc) { resetForOperator(eqc, d_op); }
void CandidateGeneratorQE::resetForOperator(Node eqc, Node op)
d_term_iter = 0;
d_eqc = eqc;
d_op = op;
+ d_term_iter_limit = d_qe->getTermDatabase()->getNumGroundTerms(d_op);
if( eqc.isNull() ){
d_mode = cand_term_db;
}else{
public:
CandidateGeneratorQE(QuantifiersEngine* qe, Node pat);
- /** reset instantiation round */
- void resetInstantiationRound() override;
/** reset */
void reset(Node eqc) override;
/** get next candidate */
{
return d_exclude_eqc.find(r) != d_exclude_eqc.end();
}
-
protected:
/** reset this class for matching operator op in equivalence class eqc */
void resetForOperator(Node eqc, Node op);