summaryrefslogtreecommitdiff
path: root/src/modules.cpp
diff options
context:
space:
mode:
authorAdam <Adam@anope.org>2010-08-22 00:34:02 -0400
committerAdam <Adam@anope.org>2010-08-22 00:34:02 -0400
commitada65a3bafd3ae6738a80972cf0d2f31ad19a7ae (patch)
treeafde8d7594adc78beec8feb8090f4a990bd6a56b /src/modules.cpp
parent8a4c6ae618f767d2a9335da40f507ddccfc77b4b (diff)
Added a classbase for the major classes, makes dynamic_reference invalidation really work.
This also cleans up a bit of the code in the modestacker.
Diffstat (limited to 'src/modules.cpp')
-rw-r--r--src/modules.cpp13
1 files changed, 4 insertions, 9 deletions
diff --git a/src/modules.cpp b/src/modules.cpp
index 0a7d813c5..8f9b6b944 100644
--- a/src/modules.cpp
+++ b/src/modules.cpp
@@ -382,18 +382,13 @@ Version Module::GetVersion() const
return Version(VERSION_MAJOR, VERSION_MINOR, VERSION_BUILD);
}
-std::list<dynamic_reference_base *> dyn_references;
-
-dynamic_reference_base::dynamic_reference_base()
+Service::Service(Module *o, const Anope::string &n) : owner(o), name(n)
{
- dyn_references.push_back(this);
+ ModuleManager::RegisterService(this);
}
-dynamic_reference_base::~dynamic_reference_base()
+Service::~Service()
{
- std::list<dynamic_reference_base *>::iterator it = std::find(dyn_references.begin(), dyn_references.end(), this);
-
- if (it != dyn_references.end())
- dyn_references.erase(it);
+ ModuleManager::UnregisterService(this);
}