From 7667c5c71748f319f2b8b2e7fb0cbc884bde04d4 Mon Sep 17 00:00:00 2001 From: Martin Nowack Date: Tue, 16 May 2023 15:23:11 +0100 Subject: Use unique_ptr for MemoryManager and avoid re-creating it in the first place No need to re-create and re-alloc all the memory again after execution. --- lib/Core/Executor.cpp | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) (limited to 'lib/Core/Executor.cpp') diff --git a/lib/Core/Executor.cpp b/lib/Core/Executor.cpp index 0b28d608..5194aff2 100644 --- a/lib/Core/Executor.cpp +++ b/lib/Core/Executor.cpp @@ -494,7 +494,7 @@ Executor::Executor(LLVMContext &ctx, const InterpreterOptions &opts, interpreterHandler->getOutputFilename(SOLVER_QUERIES_KQUERY_FILE_NAME)); this->solver = std::make_unique(std::move(solver), EqualitySubstitution); - memory = new MemoryManager(&arrayCache); + memory = std::make_unique(&arrayCache); initializeSearchOptions(); @@ -589,7 +589,6 @@ Executor::setModule(std::vector> &modules, } Executor::~Executor() { - delete memory; delete externalDispatcher; delete specialFunctionHandler; delete statsTracker; @@ -4548,7 +4547,8 @@ void Executor::runFunctionAsMain(Function *f, } } - ExecutionState *state = new ExecutionState(kmodule->functionMap[f], memory); + ExecutionState *state = + new ExecutionState(kmodule->functionMap[f], memory.get()); if (pathWriter) state->pathOS = pathWriter->open(); @@ -4597,8 +4597,7 @@ void Executor::runFunctionAsMain(Function *f, processTree = nullptr; // hack to clear memory objects - delete memory; - memory = new MemoryManager(NULL); + memory = nullptr; globalObjects.clear(); globalAddresses.clear(); -- cgit 1.4.1