From f05935dc16bda1748d02a71cb0278fa4ec03c12b Mon Sep 17 00:00:00 2001 From: Lukas Wölfer Date: Sun, 23 Sep 2018 03:12:16 +0200 Subject: Fix a crash when the last running state is terminated during merging --- lib/Core/Executor.cpp | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) (limited to 'lib/Core/Executor.cpp') diff --git a/lib/Core/Executor.cpp b/lib/Core/Executor.cpp index 04fd6941..3e37a6c6 100644 --- a/lib/Core/Executor.cpp +++ b/lib/Core/Executor.cpp @@ -2584,9 +2584,6 @@ void Executor::executeInstruction(ExecutionState &state, KInstruction *ki) { void Executor::updateStates(ExecutionState *current) { if (searcher) { searcher->update(current, addedStates, removedStates); - searcher->update(nullptr, continuedStates, pausedStates); - pausedStates.clear(); - continuedStates.clear(); } states.insert(addedStates.begin(), addedStates.end()); @@ -2607,6 +2604,12 @@ void Executor::updateStates(ExecutionState *current) { delete es; } removedStates.clear(); + + if (searcher) { + searcher->update(nullptr, continuedStates, pausedStates); + pausedStates.clear(); + continuedStates.clear(); + } } template -- cgit 1.4.1