summaryrefslogtreecommitdiff
path: root/src/cmd_who.cpp
diff options
context:
space:
mode:
authorbrain <brain@e03df62e-2008-0410-955e-edbf42e46eb7>2006-12-14 17:46:47 +0000
committerbrain <brain@e03df62e-2008-0410-955e-edbf42e46eb7>2006-12-14 17:46:47 +0000
commita78cecbeb9c677bdd4b2f44c01195759af63485b (patch)
tree03b0a71514c6e0dcf6eec78eefe160a2ea7f8b47 /src/cmd_who.cpp
parent4eb254df411f8dd1694f1b3781c77f702538c59f (diff)
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<chanrec*, char> (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
Diffstat (limited to 'src/cmd_who.cpp')
-rw-r--r--src/cmd_who.cpp12
1 files changed, 4 insertions, 8 deletions
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<ucrec*>::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 "*";