summaryrefslogtreecommitdiff
path: root/protocols/IRCG/src
diff options
context:
space:
mode:
authorGeorge Hazan <ghazan@miranda.im>2018-03-15 21:05:06 +0300
committerGeorge Hazan <ghazan@miranda.im>2018-03-15 21:05:06 +0300
commit59e6b15f513cc998ce13e9e49e2a6a3ace445ebb (patch)
treeaf52b73a17039ed1fbe398ba9f488c26a7071257 /protocols/IRCG/src
parentbdaa5cf8b48515af2ac39f3f3245dd1183cbad52 (diff)
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
Diffstat (limited to 'protocols/IRCG/src')
-rw-r--r--protocols/IRCG/src/commandmonitor.cpp7
-rw-r--r--protocols/IRCG/src/irclib.cpp4
2 files changed, 6 insertions, 5 deletions
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;
diff --git a/protocols/IRCG/src/irclib.cpp b/protocols/IRCG/src/irclib.cpp
index 681e1b19ba..28db677271 100644
--- a/protocols/IRCG/src/irclib.cpp
+++ b/protocols/IRCG/src/irclib.cpp
@@ -470,7 +470,7 @@ void CIrcProto::RemoveDCCSession(MCONTACT hContact)
for (auto &it : m_dcc_chats)
if (it->di->hContact == hContact) {
- m_dcc_chats.remove(it);
+ m_dcc_chats.removeItem(&it);
break;
}
}
@@ -481,7 +481,7 @@ void CIrcProto::RemoveDCCSession(DCCINFO *pdci)
for (auto &it : m_dcc_xfers) {
if (it->di == pdci) {
- m_dcc_xfers.remove(it);
+ m_dcc_xfers.removeItem(&it);
break;
}
}