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/cmd_who.cpp | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) (limited to 'src/cmd_who.cpp') diff --git a/src/cmd_who.cpp b/src/cmd_who.cpp index 725d19bb7..112d2e030 100644 --- a/src/cmd_who.cpp +++ b/src/cmd_who.cpp @@ -23,15 +23,11 @@ /* get the last 'visible' chan of a user */ static char *getlastchanname(userrec *u) { - for (std::vector::const_iterator v = u->chans.begin(); v != u->chans.end(); v++) + UCListIter i = u->chans.begin(); + if (i != u->chans.end()) { - ucrec* temp = (ucrec*)*v; - - if (temp->channel) - { - if (!temp->channel->IsModeSet('s')) - return temp->channel->name; - } + if (!i->first->IsModeSet('s')) + return i->first->name; } return "*"; -- cgit v1.3.1-10-gc9f91