[PATCH] shell32: Do not use SHGetMalloc() internally.

Nikolay Sivov nsivov at codeweavers.com
Mon Jan 27 02:37:17 CST 2020


Signed-off-by: Nikolay Sivov <nsivov at codeweavers.com>
---
 dlls/shell32/shelllink.c |  4 +---
 dlls/shell32/shellord.c  | 27 ++++++++++-----------------
 2 files changed, 11 insertions(+), 20 deletions(-)

diff --git a/dlls/shell32/shelllink.c b/dlls/shell32/shelllink.c
index 0dfb81c6e7..5b044d4be1 100644
--- a/dlls/shell32/shelllink.c
+++ b/dlls/shell32/shelllink.c
@@ -405,7 +405,6 @@ static HRESULT WINAPI IPersistFile_fnSaveCompleted(IPersistFile* iface, LPCOLEST
 static HRESULT WINAPI IPersistFile_fnGetCurFile(IPersistFile* iface, LPOLESTR *filename)
 {
     IShellLinkImpl *This = impl_from_IPersistFile(iface);
-    IMalloc *pMalloc;
 
     TRACE("(%p)->(%p)\n", This, filename);
 
@@ -415,8 +414,7 @@ static HRESULT WINAPI IPersistFile_fnGetCurFile(IPersistFile* iface, LPOLESTR *f
         return S_FALSE;
     }
 
-    SHGetMalloc(&pMalloc);
-    *filename = IMalloc_Alloc(pMalloc, (strlenW(This->filepath)+1)*sizeof(WCHAR));
+    *filename = CoTaskMemAlloc((strlenW(This->filepath) + 1) * sizeof(WCHAR));
     if (!*filename) return E_OUTOFMEMORY;
 
     strcpyW(*filename, This->filepath);
diff --git a/dlls/shell32/shellord.c b/dlls/shell32/shellord.c
index b04a56e783..e1262accdd 100644
--- a/dlls/shell32/shellord.c
+++ b/dlls/shell32/shellord.c
@@ -760,7 +760,6 @@ void WINAPI SHAddToRecentDocs (UINT uFlags,LPCVOID pv)
     CHAR link_dir[MAX_PATH];
     CHAR new_lnk_filepath[MAX_PATH];
     CHAR new_lnk_name[MAX_PATH];
-    IMalloc *ppM;
     LPITEMIDLIST pidl;
     HWND hwnd = 0;       /* FIXME:  get real window handle */
     INT ret;
@@ -815,24 +814,18 @@ void WINAPI SHAddToRecentDocs (UINT uFlags,LPCVOID pv)
 
     /* Get path to user's "Recent" directory
      */
-    if(SUCCEEDED(SHGetMalloc(&ppM))) {
-	if (SUCCEEDED(SHGetSpecialFolderLocation(hwnd, CSIDL_RECENT,
-						 &pidl))) {
-	    SHGetPathFromIDListA(pidl, link_dir);
-	    IMalloc_Free(ppM, pidl);
-	}
-	else {
-	    /* serious issues */
-	    link_dir[0] = 0;
-	    ERR("serious issues 1\n");
-	}
-	IMalloc_Release(ppM);
+    if (SUCCEEDED(SHGetSpecialFolderLocation(hwnd, CSIDL_RECENT, &pidl)))
+    {
+        SHGetPathFromIDListA(pidl, link_dir);
+        ILFree(pidl);
     }
-    else {
-	/* serious issues */
-	link_dir[0] = 0;
-	ERR("serious issues 2\n");
+    else
+    {
+        /* serious issues */
+        link_dir[0] = 0;
+        ERR("serious issues 1\n");
     }
+
     TRACE("Users Recent dir %s\n", link_dir);
 
     /* If no input, then go clear the lists */
-- 
2.24.1




More information about the wine-devel mailing list