diff options
| author | Daniel Schemmel <daniel@schemmel.net> | 2023-03-24 15:05:43 +0000 |
|---|---|---|
| committer | Cristian Cadar <c.cadar@imperial.ac.uk> | 2023-04-21 13:07:31 +0100 |
| commit | ac0fa15ab0679fe1b5067b07647b0701ae3bc347 (patch) | |
| tree | f2294eb5f0795ee9ce0f92d527242b7b7a507e79 /lib/Solver/ValidatingSolver.cpp | |
| parent | e9d77be6c688836d68a2be5f3f0a02e63f392bb8 (diff) | |
| download | klee-ac0fa15ab0679fe1b5067b07647b0701ae3bc347.tar.gz | |
use unique_ptr all throughout the solver chain
Diffstat (limited to 'lib/Solver/ValidatingSolver.cpp')
| -rw-r--r-- | lib/Solver/ValidatingSolver.cpp | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/lib/Solver/ValidatingSolver.cpp b/lib/Solver/ValidatingSolver.cpp index 72bdc830..8e9886d1 100644 --- a/lib/Solver/ValidatingSolver.cpp +++ b/lib/Solver/ValidatingSolver.cpp @@ -12,6 +12,7 @@ #include "klee/Solver/SolverImpl.h" #include <memory> +#include <utility> #include <vector> namespace klee { @@ -22,8 +23,9 @@ private: std::unique_ptr<Solver, void(*)(Solver*)> oracle; public: - ValidatingSolver(Solver *solver, Solver *oracle, bool ownsOracle = false) - : solver(solver), + ValidatingSolver(std::unique_ptr<Solver> solver, Solver *oracle, + bool ownsOracle) + : solver(std::move(solver)), oracle( oracle, ownsOracle ? [](Solver *solver) { delete solver; } : [](Solver *) {}) {} @@ -140,7 +142,10 @@ void ValidatingSolver::setCoreSolverTimeout(time::Span timeout) { solver->impl->setCoreSolverTimeout(timeout); } -Solver *createValidatingSolver(Solver *s, Solver *oracle, bool ownsOracle) { - return new Solver(new ValidatingSolver(s, oracle, ownsOracle)); +std::unique_ptr<Solver> createValidatingSolver(std::unique_ptr<Solver> s, + Solver *oracle, + bool ownsOracle) { + return std::make_unique<Solver>( + std::make_unique<ValidatingSolver>(std::move(s), oracle, ownsOracle)); } } |
