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