From 3dc0d9b0b7c30ea2f77d74c4ce5b6ccd67bd525c Mon Sep 17 00:00:00 2001 From: George Hazan Date: Tue, 9 Apr 2013 21:40:22 +0000 Subject: - the kernel filters out contacts by proto names much faster than a plugin; - database cycles simplified git-svn-id: http://svn.miranda-ng.org/main/trunk@4404 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c --- protocols/MSN/src/msn_lists.cpp | 32 ++++++++++++-------------------- protocols/MSN/src/msn_proto.cpp | 12 +++++------- 2 files changed, 17 insertions(+), 27 deletions(-) (limited to 'protocols/MSN/src') diff --git a/protocols/MSN/src/msn_lists.cpp b/protocols/MSN/src/msn_lists.cpp index 74961195f7..1f6134e2b7 100644 --- a/protocols/MSN/src/msn_lists.cpp +++ b/protocols/MSN/src/msn_lists.cpp @@ -238,27 +238,19 @@ void CMsnProto::Lists_Remove(int list, const char* email) void CMsnProto::Lists_Populate(void) { - HANDLE hContact = db_find_first(); - while (hContact != NULL) - { - HANDLE hContactN = db_find_next(hContact); - if (MSN_IsMyContact(hContact)) - { - char szEmail[MSN_MAX_EMAIL_LEN] = "";; - if (getStaticString(hContact, "wlid", szEmail, sizeof(szEmail))) - getStaticString(hContact, "e-mail", szEmail, sizeof(szEmail)); - - if (szEmail[0]) - { - bool localList = getByte(hContact, "LocalList", 0) != 0; - if (localList) - Lists_Add(LIST_LL, NETID_MSN, szEmail, hContact); - else - Lists_Add(0, NETID_UNKNOWN, szEmail, hContact); - } - else CallService(MS_DB_CONTACT_DELETE, (WPARAM)hContact, 0); + for (HANDLE hContact = db_find_first(m_szModuleName); hContact; hContact = db_find_next(hContact, m_szModuleName)) { + char szEmail[MSN_MAX_EMAIL_LEN] = "";; + if (getStaticString(hContact, "wlid", szEmail, sizeof(szEmail))) + getStaticString(hContact, "e-mail", szEmail, sizeof(szEmail)); + + if (szEmail[0]) { + bool localList = getByte(hContact, "LocalList", 0) != 0; + if (localList) + Lists_Add(LIST_LL, NETID_MSN, szEmail, hContact); + else + Lists_Add(0, NETID_UNKNOWN, szEmail, hContact); } - hContact = hContactN; + else CallService(MS_DB_CONTACT_DELETE, (WPARAM)hContact, 0); } } diff --git a/protocols/MSN/src/msn_proto.cpp b/protocols/MSN/src/msn_proto.cpp index a9da564cf3..e2b1cf2763 100644 --- a/protocols/MSN/src/msn_proto.cpp +++ b/protocols/MSN/src/msn_proto.cpp @@ -92,13 +92,11 @@ CMsnProto::CMsnProto(const char* aProtoName, const TCHAR* aUserName) : LoadOptions(); - for (HANDLE hContact = db_find_first(); hContact; hContact = db_find_next(hContact)) { - if (MSN_IsMyContact(hContact)) { - deleteSetting(hContact, "Status"); - deleteSetting(hContact, "IdleTS"); - deleteSetting(hContact, "p2pMsgId"); - deleteSetting(hContact, "AccList"); - } + for (HANDLE hContact = db_find_first(m_szModuleName); hContact; hContact = db_find_next(hContact, m_szModuleName)) { + deleteSetting(hContact, "Status"); + deleteSetting(hContact, "IdleTS"); + deleteSetting(hContact, "p2pMsgId"); + deleteSetting(hContact, "AccList"); } deleteSetting(NULL, "MobileEnabled"); deleteSetting(NULL, "MobileAllowed"); -- cgit v1.2.3