diff options
author | George Hazan <ghazan@miranda.im> | 2021-06-05 17:50:34 +0300 |
---|---|---|
committer | George Hazan <ghazan@miranda.im> | 2021-06-05 17:50:34 +0300 |
commit | d7c9eb34f80f207efd47d2fc65e31aedf166c323 (patch) | |
tree | 338b9b905674dc31b1efab739dfcedeed3d8d7b3 /plugins/ContactsPlus/src | |
parent | ffc5a3d7550528281976745279e77ac9faba551b (diff) |
major code cleaning in regard to db_event_getBlobSize & event memory allocation
Diffstat (limited to 'plugins/ContactsPlus/src')
-rw-r--r-- | plugins/ContactsPlus/src/main.cpp | 45 | ||||
-rw-r--r-- | plugins/ContactsPlus/src/receive.cpp | 11 |
2 files changed, 25 insertions, 31 deletions
diff --git a/plugins/ContactsPlus/src/main.cpp b/plugins/ContactsPlus/src/main.cpp index 1b759ce240..905eaab7e3 100644 --- a/plugins/ContactsPlus/src/main.cpp +++ b/plugins/ContactsPlus/src/main.cpp @@ -56,33 +56,30 @@ CMPlugin::CMPlugin() : static int HookDBEventAdded(WPARAM hContact, LPARAM hDbEvent)
{
- //process the event
+ // process the event
DBEVENTINFO dbe = {};
db_event_get(hDbEvent, &dbe);
- //check if we should process the event
- if (dbe.flags & (DBEF_SENT | DBEF_READ) || dbe.eventType != EVENTTYPE_CONTACTS) return 0;
- //get event contents
- dbe.cbBlob = db_event_getBlobSize(hDbEvent);
- if (dbe.cbBlob != -1)
- dbe.pBlob = (PBYTE)_alloca(dbe.cbBlob);
- db_event_get(hDbEvent, &dbe);
- //play received sound
+
+ // check if we should process the event
+ if (dbe.flags & (DBEF_SENT | DBEF_READ) || dbe.eventType != EVENTTYPE_CONTACTS)
+ return 0;
+
+ // play received sound
Skin_PlaySound("RecvContacts");
- {
- //add event to the contact list
- wchar_t caToolTip[128];
- mir_snwprintf(caToolTip, L"%s %s", TranslateT("Contacts received from"), Clist_GetContactDisplayName(hContact));
-
- CLISTEVENT cle = {};
- cle.hContact = hContact;
- cle.hDbEvent = hDbEvent;
- cle.hIcon = LoadIcon(g_plugin.getInst(), MAKEINTRESOURCE(IDI_CONTACTS));
- cle.pszService = MS_CONTACTS_RECEIVE;
- cle.szTooltip.w = caToolTip;
- cle.flags |= CLEF_UNICODE;
- g_clistApi.pfnAddEvent(&cle);
- }
- return 0; //continue processing by other hooks
+
+ // add event to the contact list
+ wchar_t caToolTip[128];
+ mir_snwprintf(caToolTip, L"%s %s", TranslateT("Contacts received from"), Clist_GetContactDisplayName(hContact));
+
+ CLISTEVENT cle = {};
+ cle.hContact = hContact;
+ cle.hDbEvent = hDbEvent;
+ cle.hIcon = LoadIcon(g_plugin.getInst(), MAKEINTRESOURCE(IDI_CONTACTS));
+ cle.pszService = MS_CONTACTS_RECEIVE;
+ cle.szTooltip.w = caToolTip;
+ cle.flags |= CLEF_UNICODE;
+ g_clistApi.pfnAddEvent(&cle);
+ return 0;
}
static void ProcessUnreadEvents(void)
diff --git a/plugins/ContactsPlus/src/receive.cpp b/plugins/ContactsPlus/src/receive.cpp index f4a0b1335d..da8b2230f3 100644 --- a/plugins/ContactsPlus/src/receive.cpp +++ b/plugins/ContactsPlus/src/receive.cpp @@ -195,11 +195,9 @@ INT_PTR CALLBACK RecvDlgProc(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lPara CheckDlgButton(hwndDlg, IDC_ENABLEGROUPS, BST_UNCHECKED);
RebuildGroupCombo(hwndDlg);
- { // fill listview with received contacts
- DBEVENTINFO dbe = {};
- dbe.cbBlob = db_event_getBlobSize(wndData->mhDbEvent);
- if (dbe.cbBlob != -1) // this marks an invalid hDbEvent - all smashed anyway...
- dbe.pBlob = (PBYTE)_alloca(dbe.cbBlob);
+ { // fill listview with received contacts
+ DB::EventInfo dbe;
+ dbe.cbBlob = -1;
db_event_get(wndData->mhDbEvent, &dbe);
char* pcBlob = (char*)dbe.pBlob;
char* pcEnd = (char*)dbe.pBlob + dbe.cbBlob;
@@ -212,8 +210,7 @@ INT_PTR CALLBACK RecvDlgProc(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lPara lvi.iImage = 0;
lvi.mask = LVIF_TEXT | LVIF_IMAGE;
- for (int nItem = 0; ; nItem++)
- { // Nick
+ for (int nItem = 0; ; nItem++) { // Nick
int strsize = (int)strlennull(pcBlob);
TReceivedItem* pItem = wndData->AddReceivedItem();
|