X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2Fmode.cpp;h=7deeb9b3227740b97ac7066abedc92b7ff3a7827;hb=cd1d8b7f0f4922bc35a5ca3974993f0106431fc8;hp=ee6b1cae51fe6a6bf3f99b2f3e6e30cb6d11db79;hpb=146d85b5dea9ecb803a9a47c68b5489905634125;p=user%2Fhenk%2Fcode%2Finspircd.git diff --git a/src/mode.cpp b/src/mode.cpp index ee6b1cae5..7deeb9b32 100644 --- a/src/mode.cpp +++ b/src/mode.cpp @@ -35,7 +35,7 @@ ModeHandler::ModeHandler(Module* Creator, const std::string& Name, char modelett CullResult ModeHandler::cull() { - if (ServerInstance->Modes) + if (ServerInstance) ServerInstance->Modes->DelMode(this); return classbase::cull(); } @@ -693,12 +693,15 @@ 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: { @@ -912,8 +915,8 @@ void ModeHandler::RemoveMode(Channel* channel, irc::modestacker& stack) void PrefixMode::RemoveMode(Channel* chan, irc::modestacker& stack) { - const UserMembList* userlist = chan->GetUsers(); - for (UserMembCIter i = userlist->begin(); i != userlist->end(); ++i) + const Channel::MemberMap& userlist = chan->GetUsers(); + for (Channel::MemberMap::const_iterator i = userlist.begin(); i != userlist.end(); ++i) { if (i->second->hasMode(this->GetModeChar())) stack.Push(this->GetModeChar(), i->first->nick);