aboutsummaryrefslogtreecommitdiffstats
path: root/modules/cap.cpp
diff options
context:
space:
mode:
authorGravatar Sadie Powell2026-03-28 21:32:23 +0000
committerGravatar Sadie Powell2026-03-29 00:42:15 +0000
commitcbc5431d62e3fe9166f18395dce3ddf2af0906d3 (patch)
tree48a87fc27dc4826ce0caf4071e2060a9ff9e24c5 /modules/cap.cpp
parentMove service code from base to its own header. (diff)
Switch modules from reference<> to shared_ptr<> and weak_ptr<>.
Diffstat (limited to 'modules/cap.cpp')
-rw-r--r--modules/cap.cpp20
1 files changed, 10 insertions, 10 deletions
diff --git a/modules/cap.cpp b/modules/cap.cpp
index 0835847ab..cfa2adb12 100644
--- a/modules/cap.cpp
+++ b/modules/cap.cpp
@@ -87,10 +87,10 @@ class Cap::ManagerImpl final
throw ModuleException(this->service_creator, "Too many caps");
}
- void OnReloadModuleSave(Module* mod, ReloadModule::CustomData& cd) override
+ void OnReloadModuleSave(const ModulePtr& mod, ReloadModule::CustomData& cd) override
{
ServerInstance->Logs.Debug(MODNAME, "OnReloadModuleSave()");
- if (mod == this->service_creator)
+ if (insp::same_ptr(mod, this->service_creator))
return;
auto* capmoddata = new CapModData();
@@ -99,7 +99,7 @@ class Cap::ManagerImpl final
for (const auto& [_, cap] : caps)
{
// Only save users of caps that belong to the module being reloaded
- if (cap->service_creator != mod)
+ if (!insp::same_ptr(cap->service_creator, mod))
continue;
ServerInstance->Logs.Debug(MODNAME, "Module being reloaded implements cap {}, saving cap users", cap->GetName());
@@ -115,7 +115,7 @@ class Cap::ManagerImpl final
}
}
- void OnReloadModuleRestore(Module* mod, void* data) override
+ void OnReloadModuleRestore(const ModulePtr& mod, void* data) override
{
CapModData* capmoddata = static_cast<CapModData*>(data);
for (const auto& capdata : capmoddata->caps)
@@ -144,7 +144,7 @@ class Cap::ManagerImpl final
}
public:
- ManagerImpl(Module* mod, Events::ModuleEventProvider& evprovref)
+ ManagerImpl(const WeakModulePtr& mod, Events::ModuleEventProvider& evprovref)
: Cap::Manager(mod)
, ReloadModule::EventListener(mod)
, capext(mod)
@@ -313,7 +313,7 @@ namespace
}
}
-Cap::ExtItem::ExtItem(Module* mod)
+Cap::ExtItem::ExtItem(const WeakModulePtr& mod)
: IntExtItem(mod, "caps", ExtensionType::USER, true)
{
}
@@ -398,7 +398,7 @@ private:
public:
BoolExtItem holdext;
- CommandCap(Module* mod)
+ CommandCap(const WeakModulePtr& mod)
: SplitCommand(mod, "CAP", 1)
, evprov(mod, "cap")
, manager(mod, evprov)
@@ -465,7 +465,7 @@ class PoisonCap final
: public Cap::Capability
{
public:
- PoisonCap(Module* mod)
+ PoisonCap(const WeakModulePtr& mod)
: Cap::Capability(mod, "inspircd.org/poison")
{
}
@@ -487,8 +487,8 @@ private:
public:
ModuleCap()
: Module(VF_VENDOR, "Provides support for the IRCv3 Client Capability Negotiation extension.")
- , cmd(this)
- , poisoncap(this)
+ , cmd(weak_from_this())
+ , poisoncap(weak_from_this())
{
}