From ac0fa15ab0679fe1b5067b07647b0701ae3bc347 Mon Sep 17 00:00:00 2001 From: Daniel Schemmel Date: Fri, 24 Mar 2023 15:05:43 +0000 Subject: use unique_ptr all throughout the solver chain --- lib/Solver/KQueryLoggingSolver.cpp | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) (limited to 'lib/Solver/KQueryLoggingSolver.cpp') diff --git a/lib/Solver/KQueryLoggingSolver.cpp b/lib/Solver/KQueryLoggingSolver.cpp index fccdd615..4be24e9c 100644 --- a/lib/Solver/KQueryLoggingSolver.cpp +++ b/lib/Solver/KQueryLoggingSolver.cpp @@ -13,6 +13,8 @@ #include "klee/Expr/ExprPPrinter.h" #include "klee/System/Time.h" +#include + using namespace klee; class KQueryLoggingSolver : public QueryLoggingSolver { @@ -48,10 +50,11 @@ private : } public: - KQueryLoggingSolver(Solver *_solver, std::string path, time::Span queryTimeToLog, bool logTimedOut) - : QueryLoggingSolver(_solver, path, "#", queryTimeToLog, logTimedOut), - printer(ExprPPrinter::create(logBuffer)) { - } + KQueryLoggingSolver(std::unique_ptr solver, std::string path, + time::Span queryTimeToLog, bool logTimedOut) + : QueryLoggingSolver(std::move(solver), std::move(path), "#", + queryTimeToLog, logTimedOut), + printer(ExprPPrinter::create(logBuffer)) {} virtual ~KQueryLoggingSolver() { delete printer; @@ -60,8 +63,10 @@ public: /// -Solver *klee::createKQueryLoggingSolver(Solver *_solver, std::string path, - time::Span minQueryTimeToLog, bool logTimedOut) { - return new Solver(new KQueryLoggingSolver(_solver, path, minQueryTimeToLog, logTimedOut)); +std::unique_ptr +klee::createKQueryLoggingSolver(std::unique_ptr solver, + std::string path, time::Span minQueryTimeToLog, + bool logTimedOut) { + return std::make_unique(std::make_unique( + std::move(solver), std::move(path), minQueryTimeToLog, logTimedOut)); } - -- cgit 1.4.1