From 4ef73611c5a7ced80710666dd35131e8b6c8c219 Mon Sep 17 00:00:00 2001 From: George Hazan Date: Mon, 16 Sep 2019 12:13:42 +0300 Subject: Jabber: more effective list destruction procedure --- protocols/JabberG/src/jabber_list.cpp | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) (limited to 'protocols') diff --git a/protocols/JabberG/src/jabber_list.cpp b/protocols/JabberG/src/jabber_list.cpp index 08e7eb0cff..46752efd9d 100644 --- a/protocols/JabberG/src/jabber_list.cpp +++ b/protocols/JabberG/src/jabber_list.cpp @@ -175,9 +175,13 @@ void CJabberProto::ListRemove(JABBER_LIST list, const char *jid) void CJabberProto::ListRemoveList(JABBER_LIST list) { - int i = 0; - while ((i = ListFindNext(list, i)) >= 0) - ListRemoveByIndex(i); + mir_cslock lck(m_csLists); + for (auto &it : m_lstRoster.rev_iter()) { + if (it->list == list) { + delete it; + m_lstRoster.remove(m_lstRoster.indexOf(&it)); + } + } } void CJabberProto::ListRemoveByIndex(int index) -- cgit v1.2.3