From 44b60862c97e5ec855d2bacd4d15f81f7ae7f410 Mon Sep 17 00:00:00 2001 From: George Hazan Date: Thu, 15 Mar 2018 15:33:54 +0300 Subject: MUCH more effective way of removing records from iterators --- protocols/Discord/src/dispatch.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'protocols/Discord/src/dispatch.cpp') diff --git a/protocols/Discord/src/dispatch.cpp b/protocols/Discord/src/dispatch.cpp index be99ebf054..33cf2fe556 100644 --- a/protocols/Discord/src/dispatch.cpp +++ b/protocols/Discord/src/dispatch.cpp @@ -194,10 +194,11 @@ void CDiscordProto::OnCommandGuildDeleted(const JSONNode &pRoot) if (pGuild == nullptr) return; - for (auto &it : arUsers.rev_iter()) + auto T = arUsers.rev_iter(); + for (auto &it : T) if (it->guildId == pGuild->id) { Chat_Terminate(m_szModuleName, it->wszUsername, true); - arUsers.remove(it); + arUsers.remove(T.indexOf(&it)); } Chat_Terminate(m_szModuleName, pRoot["name"].as_mstring(), true); -- cgit v1.2.3