From 59e6b15f513cc998ce13e9e49e2a6a3ace445ebb Mon Sep 17 00:00:00 2001 From: George Hazan Date: Thu, 15 Mar 2018 21:05:06 +0300 Subject: LIST<> iterators: - new method LIST::removeItem added to save a pointer to removed record; - code cleaning related to the fact that LIST::remove() shall be the last operation inside an iterator, because otherwise the reference to it will point to a record next to deleted one; - a few remaining cycles converted to iterators --- protocols/IRCG/src/commandmonitor.cpp | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'protocols/IRCG/src/commandmonitor.cpp') diff --git a/protocols/IRCG/src/commandmonitor.cpp b/protocols/IRCG/src/commandmonitor.cpp index 72db70fc6f..05ca521f17 100644 --- a/protocols/IRCG/src/commandmonitor.cpp +++ b/protocols/IRCG/src/commandmonitor.cpp @@ -2081,9 +2081,10 @@ bool CIrcProto::OnIrc_USERHOST_REPLY(const CIrcMessage *pmsg) setWString(hContact, "Nick", nick); // If user found, remove from checklist - for (int i = 0; i < checklist.getCount(); i++) - if (!mir_wstrcmpi(checklist[i], nick)) - checklist.remove(i); + auto T = checklist.rev_iter(); + for (auto &it : T) + if (!mir_wstrcmpi(it->GetString(), nick)) + checklist.remove(T.indexOf(&it)); } } break; -- cgit v1.2.3