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
This commit is contained in:
brain 2007-11-04 21:57:27 +00:00
parent fe54be35fc
commit a3b4110d51
2 changed files with 1 additions and 7 deletions

View File

@ -1521,10 +1521,6 @@ typedef DLLFactory<Module> ircd_module;
*/ */
typedef std::vector<Module*> IntModuleList; typedef std::vector<Module*> IntModuleList;
/** A list of event handlers
*/
typedef std::vector<IntModuleList> EventHandlerList;
/** An event handler iterator /** An event handler iterator
*/ */
typedef IntModuleList::iterator EventHandlerIter; typedef IntModuleList::iterator EventHandlerIter;
@ -1576,7 +1572,7 @@ class CoreExport ModuleManager : public classbase
/** Event handler hooks. /** Event handler hooks.
* This needs to be public to be used by FOREACH_MOD and friends. * This needs to be public to be used by FOREACH_MOD and friends.
*/ */
EventHandlerList EventHandlers; IntModuleList EventHandlers[I_END];
/** Simple, bog-standard, boring constructor. /** Simple, bog-standard, boring constructor.
*/ */

View File

@ -191,8 +191,6 @@ void Module::OnText(User*, void*, int, const std::string&, char, CUList&) { }
ModuleManager::ModuleManager(InspIRCd* Ins) : ModCount(0), Instance(Ins) 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() ModuleManager::~ModuleManager()