From a78cecbeb9c677bdd4b2f44c01195759af63485b Mon Sep 17 00:00:00 2001 From: brain Date: Thu, 14 Dec 2006 17:46:47 +0000 Subject: Refactor userrec::chans. Old way: A vector of ucrec, MAXCHANS in size by default populated by NULLS, so you have to scan the vector to find an empty slot when joining a user, parting a user etc New way: std::map (the char holds their basic core permissions on the channel [voice, halfop, op]) This increases speed a ton, and removes some wtf-age. git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5986 e03df62e-2008-0410-955e-edbf42e46eb7 --- src/modules/m_httpd_stats.cpp | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) (limited to 'src/modules/m_httpd_stats.cpp') diff --git a/src/modules/m_httpd_stats.cpp b/src/modules/m_httpd_stats.cpp index eda5b6f66..fb5499c2d 100644 --- a/src/modules/m_httpd_stats.cpp +++ b/src/modules/m_httpd_stats.cpp @@ -212,16 +212,13 @@ class ModuleHttpStats : public Module void OnUserQuit(userrec* user, const std::string &message) { - for (std::vector::const_iterator v = user->chans.begin(); v != user->chans.end(); v++) + for (UCListIter v = user->chans.begin(); v != user->chans.end(); v++) { - if (((ucrec*)(*v))->channel) + chanrec* c = v->first; + StatsIter a = sh->find(c->name); + if (a != sh->end()) { - chanrec* c = ((ucrec*)(*v))->channel; - StatsIter a = sh->find(c->name); - if (a != sh->end()) - { - a->second--; - } + a->second--; } } this->changed = true; -- cgit v1.3.1-10-gc9f91