diff options
Diffstat (limited to 'src/modes.cpp')
-rw-r--r-- | src/modes.cpp | 36 |
1 files changed, 16 insertions, 20 deletions
diff --git a/src/modes.cpp b/src/modes.cpp index ae550d788..5bc9e18f5 100644 --- a/src/modes.cpp +++ b/src/modes.cpp @@ -573,20 +573,18 @@ void ModeManager::StackerDel(Mode *m) for (std::list<std::pair<Mode *, Anope::string> >::iterator it2 = si->AddModes.begin(), it2_end = si->AddModes.end(); it2 != it2_end;) { - Mode *mode = it2->first; - ++it2; - - if (mode == m) - si->AddModes.erase(it2); + if (it2->first == m) + it2 = si->AddModes.erase(it2); + else + ++it2; } for (std::list<std::pair<Mode *, Anope::string> >::iterator it2 = si->DelModes.begin(), it2_end = si->DelModes.end(); it2 != it2_end;) { - Mode *mode = it2->first; - ++it2; - - if (mode == m) - si->DelModes.erase(it2); + if (it2->first == m) + it2 = si->DelModes.erase(it2); + else + ++it2; } } @@ -597,20 +595,18 @@ void ModeManager::StackerDel(Mode *m) for (std::list<std::pair<Mode *, Anope::string> >::iterator it2 = si->AddModes.begin(), it2_end = si->AddModes.end(); it2 != it2_end;) { - Mode *mode = it2->first; - ++it2; - - if (mode == m) - si->AddModes.erase(it2); + if (it2->first == m) + it2 = si->AddModes.erase(it2); + else + ++it2; } for (std::list<std::pair<Mode *, Anope::string> >::iterator it2 = si->DelModes.begin(), it2_end = si->DelModes.end(); it2 != it2_end;) { - Mode *mode = it2->first; - ++it2; - - if (mode == m) - si->DelModes.erase(it2); + if (it2->first == m) + it2 = si->DelModes.erase(it2); + else + ++it2; } } } |