diff options
| author | 2026-03-28 21:32:23 +0000 | |
|---|---|---|
| committer | 2026-03-29 00:42:15 +0000 | |
| commit | cbc5431d62e3fe9166f18395dce3ddf2af0906d3 (patch) | |
| tree | 48a87fc27dc4826ce0caf4071e2060a9ff9e24c5 /src/extensible.cpp | |
| parent | Move service code from base to its own header. (diff) | |
| download | inspircd++-cbc5431d62e3fe9166f18395dce3ddf2af0906d3.tar.gz inspircd++-cbc5431d62e3fe9166f18395dce3ddf2af0906d3.tar.bz2 inspircd++-cbc5431d62e3fe9166f18395dce3ddf2af0906d3.zip | |
Switch modules from reference<> to shared_ptr<> and weak_ptr<>.
Diffstat (limited to 'src/extensible.cpp')
| -rw-r--r-- | src/extensible.cpp | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/src/extensible.cpp b/src/extensible.cpp index 584a44dd7..94bc3eef0 100644 --- a/src/extensible.cpp +++ b/src/extensible.cpp @@ -42,13 +42,14 @@ bool ExtensionManager::Register(ExtensionItem* item) return types.emplace(item->service_name, item).second; } -void ExtensionManager::BeginUnregister(Module* module, std::vector<ExtensionItem*>& items) +void ExtensionManager::BeginUnregister(const ModulePtr& module, std::vector<ExtensionItem*>& items) { for (ExtMap::iterator type = types.begin(); type != types.end(); ) { ExtMap::iterator thistype = type++; ExtensionItem* item = thistype->second; - if (item->service_creator == module) + + if (insp::same_ptr(item->service_creator, module)) { items.push_back(item); types.erase(thistype); @@ -107,7 +108,7 @@ void Extensible::UnhookExtensions(const std::vector<ExtensionItem*>& items) } } -ExtensionItem::ExtensionItem(Module* mod, const std::string& Key, ExtensionType exttype) +ExtensionItem::ExtensionItem(const WeakModulePtr& mod, const std::string& Key, ExtensionType exttype) : ServiceProvider(mod, "ExtensionItem", Key) , extype(exttype) { @@ -195,7 +196,7 @@ std::string ExtensionItem::ToNetwork(const Extensible* container, const Extensio return {}; } -BoolExtItem::BoolExtItem(Module* owner, const std::string& key, ExtensionType exttype, bool sync) +BoolExtItem::BoolExtItem(const WeakModulePtr& owner, const std::string& key, ExtensionType exttype, bool sync) : ExtensionItem(owner, key, exttype) , synced(sync) { @@ -256,7 +257,7 @@ void BoolExtItem::Unset(Extensible* container, bool sync) Sync(container, CreateFakePointer(0)); } -IntExtItem::IntExtItem(Module* owner, const std::string& key, ExtensionType exttype, bool sync) +IntExtItem::IntExtItem(const WeakModulePtr& owner, const std::string& key, ExtensionType exttype, bool sync) : ExtensionItem(owner, key, exttype) , synced(sync) { @@ -315,7 +316,7 @@ void IntExtItem::Unset(Extensible* container, bool sync) Sync(container, nullptr); } -StringExtItem::StringExtItem(Module* owner, const std::string& key, ExtensionType exttype, bool sync) +StringExtItem::StringExtItem(const WeakModulePtr& owner, const std::string& key, ExtensionType exttype, bool sync) : SimpleExtItem(owner, key, exttype, sync) { } |
