From 75cb4a995e44e1ebd1a009f344ab7df00c5c65ba Mon Sep 17 00:00:00 2001 From: Kirill Volinsky Date: Thu, 30 Apr 2015 19:39:08 +0000 Subject: minus critical section git-svn-id: http://svn.miranda-ng.org/main/trunk@13314 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c --- plugins/AssocMgr/src/assoclist.cpp | 50 ++++++++++++-------------------------- 1 file changed, 15 insertions(+), 35 deletions(-) (limited to 'plugins/AssocMgr/src') diff --git a/plugins/AssocMgr/src/assoclist.cpp b/plugins/AssocMgr/src/assoclist.cpp index b941acf106..08616eb610 100644 --- a/plugins/AssocMgr/src/assoclist.cpp +++ b/plugins/AssocMgr/src/assoclist.cpp @@ -43,7 +43,7 @@ typedef struct { static ASSOCDATA *pAssocList; /* protected by csAssocList */ static int nAssocListCount; /* protected by csAssocList */ -static CRITICAL_SECTION csAssocList; +static mir_cs csAssocList; /************************* Assoc Enabled **************************/ @@ -91,7 +91,7 @@ void CleanupAssocEnabledSettings(void) /* delete old enabled_* settings if associated plugin no longer present */ if(EnumDbPrefixSettings("AssocMgr", "enabled_", &ppszSettings, &nSettingsCount)) { - EnterCriticalSection(&csAssocList); + mir_cslock lck(csAssocList); for(i = 0;ipszDescription == NULL || (assoc->pszService == NULL && tdh->pszService!= NULL)) { mir_free(assoc->pszService); /* does NULL check */ mir_free(assoc->pszDescription); /* does NULL check */ - LeaveCriticalSection(&csAssocList); return FALSE; } @@ -447,12 +439,10 @@ static BOOL RemoveAssocItem_Worker(const char *pszClassName) ASSOCDATA *pAssocListBuf, *assoc; /* find index */ - EnterCriticalSection(&csAssocList); + mir_cslock lck(csAssocList); int index = FindAssocItem(pszClassName); - if(index == -1) { - LeaveCriticalSection(&csAssocList); + if(index == -1) return FALSE; - } assoc = &pAssocList[index]; /* delete registry keys and db setting */ @@ -475,7 +465,6 @@ static BOOL RemoveAssocItem_Worker(const char *pszClassName) pAssocListBuf = (ASSOCDATA*)mir_realloc(pAssocList, (nAssocListCount-1)*sizeof(ASSOCDATA)); if(pAssocListBuf!= NULL) pAssocList = pAssocListBuf; --nAssocListCount; - LeaveCriticalSection(&csAssocList); NotifyAssocChange(FALSE); return TRUE; @@ -561,12 +550,10 @@ static BOOL InvokeHandler_Worker(const char *pszClassName, const TCHAR *pszParam char *pszService; /* find it in list */ - EnterCriticalSection(&csAssocList); + mir_cslock lck(csAssocList); int index = FindAssocItem(pszClassName); - if(index == -1) { - LeaveCriticalSection(&csAssocList); + if(index == -1) return FALSE; - } ASSOCDATA *assoc = &pAssocList[index]; /* no service specified? correct registry to use main commandline */ if(assoc->pszService == NULL) { @@ -580,7 +567,6 @@ static BOOL InvokeHandler_Worker(const char *pszClassName, const TCHAR *pszParam /* get params */ pszService = mir_strdup(assoc->pszService); pvParam = t2s(pszParam, assoc->flags&FTDF_UNICODE, FALSE); - LeaveCriticalSection(&csAssocList); /* call service */ if(pszService!= NULL && pvParam!= NULL) @@ -685,7 +671,7 @@ static INT_PTR CALLBACK AssocListOptDlgProc(HWND hwndDlg, UINT msg, WPARAM wPara ListView_InsertColumn(hwndList, lvc.iSubItem = 1, &lvc); } /* create image storage */ - EnterCriticalSection(&csAssocList); + mir_cslock lck(csAssocList); { HDC hdc; hdc = GetDC(hwndList); if(hdc!= NULL) { /* BITSPIXEL is compatible with ILC_COLOR flags */ @@ -746,7 +732,6 @@ static INT_PTR CALLBACK AssocListOptDlgProc(HWND hwndDlg, UINT msg, WPARAM wPara ListView_SetItem(hwndList, &lvi); } } - LeaveCriticalSection(&csAssocList); lvi.iItem = ListView_GetTopIndex(hwndList); ListView_SetItemState(hwndList, lvi.iItem, LVIS_SELECTED|LVIS_FOCUSED, LVIS_SELECTED|LVIS_FOCUSED); ListView_SetColumnWidth(hwndList, 1, LVSCW_AUTOSIZE_USEHEADER); /* size to fit window */ @@ -892,7 +877,7 @@ static INT_PTR CALLBACK AssocListOptDlgProc(HWND hwndDlg, UINT msg, WPARAM wPara HWND hwndList = GetDlgItem(hwndDlg, IDC_ASSOCLIST); lvi.iSubItem = 0; lvi.mask = LVIF_PARAM; - EnterCriticalSection(&csAssocList); + mir_cslock lck(csAssocList); for(lvi.iItem = 0;ListView_GetItem(hwndList, &lvi);++lvi.iItem) { assoc = (ASSOCDATA*)lvi.lParam; if(assoc == NULL) continue; /* groups */ @@ -907,7 +892,6 @@ static INT_PTR CALLBACK AssocListOptDlgProc(HWND hwndDlg, UINT msg, WPARAM wPara fRegFailed = TRUE; /* just show one time */ } } - LeaveCriticalSection(&csAssocList); NotifyAssocChange(TRUE); PostMessage(hwndDlg, M_REFRESH_ICONS, 0, 0); /* autostart */ @@ -965,7 +949,6 @@ void InitAssocList(void) /* Assoc List */ pAssocList = NULL; nAssocListCount = 0; - InitializeCriticalSection(&csAssocList); /* Services */ hServiceAddFile = CreateServiceFunction(MS_ASSOCMGR_ADDNEWFILETYPE, ServiceAddNewFileType); @@ -975,7 +958,6 @@ void InitAssocList(void) /* Notify Shell */ nNotifyTimerID = 0; - InitializeCriticalSection(&csNotifyTimer); /* register open-with app */ { @@ -1047,12 +1029,10 @@ void UninitAssocList(void) mir_free(assoc->pszMimeType); /* does NULL check */ } mir_free(pAssocList); - DeleteCriticalSection(&csAssocList); /* Notify Shell */ if(fOnlyWhileRunning && nAssocListCount) NotifyAssocChange(TRUE); - DeleteCriticalSection(&csNotifyTimer); /* unregister open-with app */ if(fOnlyWhileRunning) { -- cgit v1.2.3