Michael Stefaniuc : shell32: Simplify RecycleBin_EnumObjects() a little.
Module: wine Branch: master Commit: 27b284d4c9501047c77d79beb0c2740397c5f5c9 URL: http://source.winehq.org/git/wine.git/?a=commit;h=27b284d4c9501047c77d79beb0... Author: Michael Stefaniuc <mstefani(a)redhat.de> Date: Mon Oct 10 01:00:46 2011 +0200 shell32: Simplify RecycleBin_EnumObjects() a little. --- dlls/shell32/recyclebin.c | 24 +++++++++--------------- 1 files changed, 9 insertions(+), 15 deletions(-) diff --git a/dlls/shell32/recyclebin.c b/dlls/shell32/recyclebin.c index 44e99fc..9e75c30 100644 --- a/dlls/shell32/recyclebin.c +++ b/dlls/shell32/recyclebin.c @@ -410,33 +410,27 @@ static HRESULT WINAPI RecycleBin_EnumObjects(IShellFolder2 *iface, HWND hwnd, SH RecycleBin *This = impl_from_IShellFolder2(iface); IEnumIDList *list; LPITEMIDLIST *pidls; - HRESULT ret; + HRESULT ret = E_OUTOFMEMORY; int pidls_count; int i=0; TRACE("(%p, %p, %x, %p)\n", This, hwnd, grfFlags, ppenumIDList); + *ppenumIDList = NULL; + list = IEnumIDList_Constructor(); + if (!list) + return E_OUTOFMEMORY; + if (grfFlags & SHCONTF_NONFOLDERS) { - *ppenumIDList = NULL; if (FAILED(ret = TRASH_EnumItems(&pidls, &pidls_count))) - return ret; - - list = IEnumIDList_Constructor(); - if (list == NULL) goto failed; for (i=0; i<pidls_count; i++) if (!AddToEnumList(list, pidls[i])) goto failed; - *ppenumIDList = list; } - else - { - *ppenumIDList = IEnumIDList_Constructor(); - if (*ppenumIDList == NULL) - return E_OUTOFMEMORY; - } - + + *ppenumIDList = list; return S_OK; failed: @@ -445,7 +439,7 @@ failed: for (; i<pidls_count; i++) ILFree(pidls[i]); SHFree(pidls); - return E_OUTOFMEMORY; + return ret; } static HRESULT WINAPI RecycleBin_BindToObject(IShellFolder2 *This, LPCITEMIDLIST pidl, LPBC pbc, REFIID riid, void **ppv)
participants (1)
-
Alexandre Julliard