aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar Sadie Powell2021-04-08 23:58:23 +0100
committerGravatar Sadie Powell2021-04-09 00:16:02 +0100
commit5dc87c938ab756aebda2d4e1fdd75136e5103f07 (patch)
treeb1d44b61d7469a97ada67c9b8542dee05629abd1
parentFix a dangling view in dccallow. (diff)
downloadinspircd++-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.h9
-rw-r--r--src/extensible.cpp4
-rw-r--r--src/modules.cpp2
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();