diff options
Diffstat (limited to 'src/modulemanager.cpp')
-rw-r--r-- | src/modulemanager.cpp | 18 |
1 files changed, 2 insertions, 16 deletions
diff --git a/src/modulemanager.cpp b/src/modulemanager.cpp index 8e4329581..5fab83ff9 100644 --- a/src/modulemanager.cpp +++ b/src/modulemanager.cpp @@ -256,22 +256,8 @@ void ModuleManager::DeleteModule(Module *m) ano_module_t handle = m->handle; Anope::string filename = m->filename; - ano_modclearerr(); - void (*destroy_func)(Module *m) = function_cast<void (*)(Module *)>(dlsym(m->handle, "AnopeFini")); - const char *err = ano_moderr(); - if (!destroy_func && err && *err) - { - Log() << "No destroy function found, chancing delete..."; - delete m; /* we just have to chance they haven't overwrote the delete operator then... */ - } - else - destroy_func(m); /* Let the module delete it self, just in case */ - - if (handle) - { - if (dlclose(handle)) - Log() << ano_moderr(); - } + if (handle && dlclose(handle)) + Log() << ano_moderr(); if (!filename.empty()) DeleteFile(filename.c_str()); |