summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorbrain <brain@e03df62e-2008-0410-955e-edbf42e46eb7>2007-11-04 21:57:27 +0000
committerbrain <brain@e03df62e-2008-0410-955e-edbf42e46eb7>2007-11-04 21:57:27 +0000
commita3b4110d511951d92fbe9bcdf87aa51e2cd0a1ba (patch)
tree3e84bf17b250249dce9a88c61baf1b0c52b78a14
parentfe54be35fc7fa67b77d5a4860006f2bd7b58234e (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.h6
-rw-r--r--src/modules.cpp2
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()