diff --git a/src/App.cpp b/src/App.cpp index 5dfdb27..fa8eeba 100644 --- a/src/App.cpp +++ b/src/App.cpp @@ -78,12 +78,15 @@ void App::load(std::string lib) { void App::unload(decltype(Module::self) it) { void* handle = (*it)->getHandle(); std::cout << "retrieved handle\nAttempting to delete module: " << (*it)->getName() << std::endl; - delete *it; + Module* m = *it; + *it = nullptr; + modules.erase(it); + std::cout << "erased iterator\n"; + delete m; std::cout << "deleted module\n"; dlclose(handle); std::cout << "closed handle\n"; - modules.erase(it); - std::cout << "erased iterator\n"; + } void App::handleArgs(const int& argc, char* argv[]) {