aboutsummaryrefslogtreecommitdiff
path: root/src/modules.cpp
diff options
context:
space:
mode:
authorGravatar Sadie Powell2020-02-14 01:25:09 +0000
committerGravatar Sadie Powell2020-02-14 01:36:35 +0000
commit8d5adb667fcdf05dc87b1091359b66ae7e12d090 (patch)
tree237a41888025d253fda7cd42a94d744c076cd42b /src/modules.cpp
parentFix GitHub Actions on macOS for real this time. (diff)
Clean up ModuleDLLManager from the Module::cull() method.
This avoids a leak which happens in some rare circumstances.
Diffstat (limited to 'src/modules.cpp')
-rw-r--r--src/modules.cpp5
1 files changed, 2 insertions, 3 deletions
diff --git a/src/modules.cpp b/src/modules.cpp
index 2bb594a57..73bd2a5e2 100644
--- a/src/modules.cpp
+++ b/src/modules.cpp
@@ -64,6 +64,8 @@ Module::Module()
CullResult Module::cull()
{
+ if (ModuleDLLManager)
+ ServerInstance->GlobalCulls.AddItem(ModuleDLLManager);
return classbase::cull();
}
@@ -450,11 +452,8 @@ namespace
UnloadAction(Module* m) : mod(m) {}
void Call() CXX11_OVERRIDE
{
- DLLManager* dll = mod->ModuleDLLManager;
ServerInstance->Modules->DoSafeUnload(mod);
ServerInstance->GlobalCulls.Apply();
- // In pure static mode this is always NULL
- delete dll;
ServerInstance->GlobalCulls.AddItem(this);
}
};