Michael Stefaniuc : shell32: Simplify RecycleBin_EnumObjects() a little.
Alexandre Julliard
julliard at winehq.org
Mon Oct 10 10:25:36 CDT 2011
Module: wine
Branch: master
Commit: 27b284d4c9501047c77d79beb0c2740397c5f5c9
URL: http://source.winehq.org/git/wine.git/?a=commit;h=27b284d4c9501047c77d79beb0c2740397c5f5c9
Author: Michael Stefaniuc <mstefani at 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)
More information about the wine-cvs
mailing list