Andrew Eikum : shell32: Rearrange error handling in IKnownFolder:: GetFolderDefinition.
Alexandre Julliard
julliard at wine.codeweavers.com
Mon Mar 2 08:51:50 CST 2015
Module: wine
Branch: master
Commit: d7d058482ce86c6e0c1a64c7e73a3f56f25f4523
URL: http://source.winehq.org/git/wine.git/?a=commit;h=d7d058482ce86c6e0c1a64c7e73a3f56f25f4523
Author: Andrew Eikum <aeikum at codeweavers.com>
Date: Fri Feb 27 09:01:26 2015 -0600
shell32: Rearrange error handling in IKnownFolder::GetFolderDefinition.
---
dlls/shell32/shellpath.c | 25 +++++++++++++++----------
1 file changed, 15 insertions(+), 10 deletions(-)
diff --git a/dlls/shell32/shellpath.c b/dlls/shell32/shellpath.c
index 0cdc409..84ac7d5 100644
--- a/dlls/shell32/shellpath.c
+++ b/dlls/shell32/shellpath.c
@@ -3675,20 +3675,25 @@ static HRESULT WINAPI knownfolder_GetFolderDefinition(
ZeroMemory(pKFD, sizeof(*pKFD));
hr = get_known_folder_category(knownfolder->registryPath, &pKFD->category);
+ if(FAILED(hr))
+ return hr;
- if(SUCCEEDED(hr))
- hr = HRESULT_FROM_WIN32(RegGetValueW(HKEY_LOCAL_MACHINE, knownfolder->registryPath, szName, RRF_RT_REG_SZ, NULL, NULL, &dwSize));
+ hr = HRESULT_FROM_WIN32(RegGetValueW(HKEY_LOCAL_MACHINE, knownfolder->registryPath, szName, RRF_RT_REG_SZ, NULL, NULL, &dwSize));
+ if(FAILED(hr))
+ return hr;
- if(SUCCEEDED(hr))
- {
- pKFD->pszName = CoTaskMemAlloc(dwSize);
- if(!pKFD->pszName) hr = E_OUTOFMEMORY;
- }
+ pKFD->pszName = CoTaskMemAlloc(dwSize);
+ if(!pKFD->pszName)
+ return E_OUTOFMEMORY;
- if(SUCCEEDED(hr))
- hr = HRESULT_FROM_WIN32(RegGetValueW(HKEY_LOCAL_MACHINE, knownfolder->registryPath, szName, RRF_RT_REG_SZ, NULL, pKFD->pszName, &dwSize));
+ hr = HRESULT_FROM_WIN32(RegGetValueW(HKEY_LOCAL_MACHINE, knownfolder->registryPath, szName, RRF_RT_REG_SZ, NULL, pKFD->pszName, &dwSize));
+ if(FAILED(hr)){
+ CoTaskMemFree(pKFD->pszName);
+ pKFD->pszName = NULL;
+ return hr;
+ }
- return hr;
+ return S_OK;
}
static const struct IKnownFolderVtbl knownfolder_vtbl =
More information about the wine-cvs
mailing list