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 --- src/core/stdchat/src/clist.cpp | 27 ++++++++++++++------------- 1 file changed, 14 insertions(+), 13 deletions(-) (limited to 'src/core/stdchat') diff --git a/src/core/stdchat/src/clist.cpp b/src/core/stdchat/src/clist.cpp index 63a4a5687a..fb147bf717 100644 --- a/src/core/stdchat/src/clist.cpp +++ b/src/core/stdchat/src/clist.cpp @@ -281,20 +281,21 @@ BOOL CList_AddEvent(HANDLE hContact, HICON hIcon, HANDLE hEvent, int type, TCHAR return TRUE; } -HANDLE CList_FindRoom ( const char* pszModule, const TCHAR* pszRoom) +HANDLE CList_FindRoom (const char* pszModule, const TCHAR* pszRoom) { - for (HANDLE hContact = db_find_first(); hContact; hContact = db_find_next(hContact)) { - char *szProto = GetContactProto(hContact); - if ( szProto && !lstrcmpiA( szProto, pszModule )) { - if ( db_get_b( hContact, szProto, "ChatRoom", 0) != 0 ) { - DBVARIANT dbv; - if ( !db_get_ts( hContact, szProto, "ChatRoomID", &dbv )) { - if ( !lstrcmpi(dbv.ptszVal, pszRoom)) { - db_free( &dbv ); - return hContact; - } - db_free(&dbv); - } } } } + for (HANDLE hContact = db_find_first(pszModule); hContact; hContact = db_find_next(hContact, pszModule)) { + if ( !db_get_b(hContact, pszModule, "ChatRoom", 0)) + continue; + + DBVARIANT dbv; + if ( !db_get_ts( hContact, pszModule, "ChatRoomID", &dbv )) { + if ( !lstrcmpi(dbv.ptszVal, pszRoom)) { + db_free(&dbv); + return hContact; + } + db_free(&dbv); + } + } return 0; } -- cgit v1.2.3