1
0
mirror of https://github.com/anope/anope.git synced 2026-07-08 02:43:13 +02:00

Set pending mode changes immediately when an object is removed from the mode stacker. And fix mlock creator from cs set persist on.

This commit is contained in:
Adam
2013-12-17 10:57:50 -05:00
parent d709c819d2
commit 1ab7d53649
2 changed files with 19 additions and 3 deletions
+18 -2
View File
@@ -570,14 +570,30 @@ void ModeManager::ProcessModes()
}
}
template<typename T>
static void StackerDel(std::map<T *, StackerInfo *> &map, T *obj)
{
typename std::map<T *, StackerInfo *>::iterator it = map.find(obj);
if (it != map.end())
{
StackerInfo *si = it->second;
std::list<Anope::string> ModeStrings = BuildModeStrings(si);
for (std::list<Anope::string>::iterator lit = ModeStrings.begin(), lit_end = ModeStrings.end(); lit != lit_end; ++lit)
IRCD->SendMode(si->bi, obj, lit->c_str());
delete si;
map.erase(it);
}
}
void ModeManager::StackerDel(User *u)
{
UserStackerObjects.erase(u);
::StackerDel(UserStackerObjects, u);
}
void ModeManager::StackerDel(Channel *c)
{
ChannelStackerObjects.erase(c);
::StackerDel(ChannelStackerObjects, c);
}
void ModeManager::StackerDel(Mode *m)