]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - src/mode.cpp
Change storage of UserManager::all_opers to be a vector
[user/henk/code/inspircd.git] / src / mode.cpp
index 1a02b5ec727a3ba29869d2995244be23cc032ac7..9d24160f65b0bd8a2ba68c33138533aec83301ac 100644 (file)
@@ -693,15 +693,20 @@ bool ModeParser::DelMode(ModeHandler* mh)
        switch (mh->GetModeType())
        {
                case MODETYPE_USER:
-                       for (user_hash::iterator i = ServerInstance->Users->clientlist->begin(); i != ServerInstance->Users->clientlist->end(); )
+               {
+                       const user_hash& users = ServerInstance->Users->GetUsers();
+                       for (user_hash::const_iterator i = users.begin(); i != users.end(); )
                        {
                                User* user = i->second;
                                ++i;
                                mh->RemoveMode(user);
                        }
+               }
                break;
                case MODETYPE_CHANNEL:
-                       for (chan_hash::iterator i = ServerInstance->chanlist->begin(); i != ServerInstance->chanlist->end(); )
+               {
+                       const chan_hash& chans = ServerInstance->GetChans();
+                       for (chan_hash::const_iterator i = chans.begin(); i != chans.end(); )
                        {
                                // The channel may not be in the hash after RemoveMode(), see m_permchannels
                                Channel* chan = i->second;
@@ -718,6 +723,7 @@ bool ModeParser::DelMode(ModeHandler* mh)
                                        stackresult.erase(stackresult.begin() + 1, stackresult.end());
                                }
                        }
+               }
                break;
        }