Module: wine Branch: master Commit: 27b284d4c9501047c77d79beb0c2740397c5f5c9 URL: http://source.winehq.org/git/wine.git/?a=commit;h=27b284d4c9501047c77d79beb0...
Author: Michael Stefaniuc mstefani@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)