diff options
| author | 2021-04-08 23:58:23 +0100 | |
|---|---|---|
| committer | 2021-04-09 00:16:02 +0100 | |
| commit | 5dc87c938ab756aebda2d4e1fdd75136e5103f07 (patch) | |
| tree | b1d44b61d7469a97ada67c9b8542dee05629abd1 | |
| parent | Fix a dangling view in dccallow. (diff) | |
| download | inspircd++-5dc87c938ab756aebda2d4e1fdd75136e5103f07.tar.gz inspircd++-5dc87c938ab756aebda2d4e1fdd75136e5103f07.tar.bz2 inspircd++-5dc87c938ab756aebda2d4e1fdd75136e5103f07.zip | |
Remove usecountbase from ExtensionItem and refer to using pointers.
At one point (1.2?) this was actually useful but nowadays its not.
| -rw-r--r-- | include/extensible.h | 9 | ||||
| -rw-r--r-- | src/extensible.cpp | 4 | ||||
| -rw-r--r-- | src/modules.cpp | 2 |
3 files changed, 7 insertions, 8 deletions
diff --git a/include/extensible.h b/include/extensible.h index cf9e4762c..78640fb73 100644 --- a/include/extensible.h +++ b/include/extensible.h @@ -25,7 +25,6 @@ /** Base class for logic that extends an Extensible object. */ class CoreExport ExtensionItem : public ServiceProvider - , public usecountbase { public: /** Types of Extensible that an ExtensionItem can apply to. */ @@ -132,7 +131,7 @@ class CoreExport Extensible , public Serializable { public: - typedef insp::flat_map<reference<ExtensionItem>, void*> ExtensibleStore; + typedef insp::flat_map<ExtensionItem*, void*> ExtensibleStore; // Friend access for the protected getter/setter friend class ExtensionItem; @@ -155,7 +154,7 @@ class CoreExport Extensible Extensible(); Cullable::Result Cull() override; ~Extensible() override; - void UnhookExtensions(const std::vector<reference<ExtensionItem>>& toRemove); + void UnhookExtensions(const std::vector<ExtensionItem*>& toRemove); /** * Free all extension items attached to this Extensible @@ -172,10 +171,10 @@ class CoreExport Extensible class CoreExport ExtensionManager { public: - typedef std::map<std::string, reference<ExtensionItem> > ExtMap; + typedef std::map<std::string, ExtensionItem*> ExtMap; bool Register(ExtensionItem* item); - void BeginUnregister(Module* module, std::vector<reference<ExtensionItem> >& list); + void BeginUnregister(Module* module, std::vector<ExtensionItem*>& list); ExtensionItem* GetItem(const std::string& name); /** Get all registered extensions keyed by their names diff --git a/src/extensible.cpp b/src/extensible.cpp index 88230ae9a..5055dd091 100644 --- a/src/extensible.cpp +++ b/src/extensible.cpp @@ -24,7 +24,7 @@ bool ExtensionManager::Register(ExtensionItem* item) return types.emplace(item->name, item).second; } -void ExtensionManager::BeginUnregister(Module* module, std::vector<reference<ExtensionItem>>& items) +void ExtensionManager::BeginUnregister(Module* module, std::vector<ExtensionItem*>& items) { for (ExtMap::iterator type = types.begin(); type != types.end(); ) { @@ -75,7 +75,7 @@ void Extensible::FreeAllExtItems() extensions.clear(); } -void Extensible::UnhookExtensions(const std::vector<reference<ExtensionItem>>& items) +void Extensible::UnhookExtensions(const std::vector<ExtensionItem*>& items) { for (const auto& item : items) { diff --git a/src/modules.cpp b/src/modules.cpp index 8315a7cce..54b3c2c66 100644 --- a/src/modules.cpp +++ b/src/modules.cpp @@ -389,7 +389,7 @@ void ModuleManager::DoSafeUnload(Module* mod) UnregisterModes(mod, MODETYPE_USER); UnregisterModes(mod, MODETYPE_CHANNEL); - std::vector<reference<ExtensionItem> > items; + std::vector<ExtensionItem*> items; ServerInstance->Extensions.BeginUnregister(modfind->second, items); /* Give the module a chance to tidy out all its metadata */ const chan_hash& chans = ServerInstance->GetChans(); |
