diff options
author | brain <brain@e03df62e-2008-0410-955e-edbf42e46eb7> | 2007-11-04 21:57:27 +0000 |
---|---|---|
committer | brain <brain@e03df62e-2008-0410-955e-edbf42e46eb7> | 2007-11-04 21:57:27 +0000 |
commit | a3b4110d511951d92fbe9bcdf87aa51e2cd0a1ba (patch) | |
tree | 3e84bf17b250249dce9a88c61baf1b0c52b78a14 | |
parent | fe54be35fc7fa67b77d5a4860006f2bd7b58234e (diff) |
Instead of a vector of vectors, use an array of vectors as in the original spec on Development/Hooking.
This is faster, as only the inner list resizes, and this avoids calls to std::vector::operator[]
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8531 e03df62e-2008-0410-955e-edbf42e46eb7
-rw-r--r-- | include/modules.h | 6 | ||||
-rw-r--r-- | src/modules.cpp | 2 |
2 files changed, 1 insertions, 7 deletions
diff --git a/include/modules.h b/include/modules.h index 6a56384f5..ef0d3f620 100644 --- a/include/modules.h +++ b/include/modules.h @@ -1521,10 +1521,6 @@ typedef DLLFactory<Module> ircd_module; */ typedef std::vector<Module*> IntModuleList; -/** A list of event handlers - */ -typedef std::vector<IntModuleList> EventHandlerList; - /** An event handler iterator */ typedef IntModuleList::iterator EventHandlerIter; @@ -1576,7 +1572,7 @@ class CoreExport ModuleManager : public classbase /** Event handler hooks. * This needs to be public to be used by FOREACH_MOD and friends. */ - EventHandlerList EventHandlers; + IntModuleList EventHandlers[I_END]; /** Simple, bog-standard, boring constructor. */ diff --git a/src/modules.cpp b/src/modules.cpp index 7eb97873f..ef494a7c6 100644 --- a/src/modules.cpp +++ b/src/modules.cpp @@ -191,8 +191,6 @@ void Module::OnText(User*, void*, int, const std::string&, char, CUList&) { } ModuleManager::ModuleManager(InspIRCd* Ins) : ModCount(0), Instance(Ins) { - for (int n = I_BEGIN; n != I_END; ++n) - EventHandlers.push_back(std::vector<Module*>()); } ModuleManager::~ModuleManager() |