Module: wine Branch: master Commit: d7d058482ce86c6e0c1a64c7e73a3f56f25f4523 URL: http://source.winehq.org/git/wine.git/?a=commit;h=d7d058482ce86c6e0c1a64c7e7...
Author: Andrew Eikum aeikum@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 =