summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/theory/inference_manager_buffered.cpp9
1 files changed, 6 insertions, 3 deletions
diff --git a/src/theory/inference_manager_buffered.cpp b/src/theory/inference_manager_buffered.cpp
index 7985f7de0..cdba5dfd6 100644
--- a/src/theory/inference_manager_buffered.cpp
+++ b/src/theory/inference_manager_buffered.cpp
@@ -100,10 +100,13 @@ void InferenceManagerBuffered::doPendingLemmas()
return;
}
d_processingPendingLemmas = true;
- for (const std::unique_ptr<TheoryInference>& plem : d_pendingLem)
+ size_t i = 0;
+ while (i < d_pendingLem.size())
{
- // process this lemma
- plem->process(this, true);
+ // process this lemma, which notice may enqueue more pending lemmas in this
+ // loop, or clear the lemmas.
+ d_pendingLem[i]->process(this, true);
+ i++;
}
d_pendingLem.clear();
d_processingPendingLemmas = false;
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback