From 82198731fca18002c0483241c2e479843dbe5753 Mon Sep 17 00:00:00 2001 From: Nikolay Sivov Date: Mon, 24 Jan 2022 11:35:43 +0300 Subject: [PATCH] wshom: Use CRT allocation functions. Signed-off-by: Nikolay Sivov Signed-off-by: Alexandre Julliard --- dlls/wshom.ocx/shell.c | 103 ++++++++++++++++++++++++------------------------- 1 file changed, 51 insertions(+), 52 deletions(-) diff --git a/dlls/wshom.ocx/shell.c b/dlls/wshom.ocx/shell.c index e8fcba72505..1ee74577310 100644 --- a/dlls/wshom.ocx/shell.c +++ b/dlls/wshom.ocx/shell.c @@ -24,7 +24,6 @@ #include "dispex.h" #include "wine/debug.h" -#include "wine/heap.h" WINE_DEFAULT_DEBUG_CHANNEL(wshom); @@ -49,7 +48,7 @@ typedef struct LONG ref; IShellLinkW *link; - BSTR path_link; + WCHAR *path_link; } WshShortcut; typedef struct @@ -130,7 +129,7 @@ static ULONG WINAPI WshExec_Release(IWshExec *iface) if (!ref) { CloseHandle(This->info.hThread); CloseHandle(This->info.hProcess); - heap_free(This); + free(This); } return ref; @@ -321,24 +320,25 @@ static const IWshExecVtbl WshExecVtbl = { static HRESULT WshExec_create(BSTR command, IWshExec **ret) { STARTUPINFOW si = {0}; - WshExecImpl *This; + WshExecImpl *object; *ret = NULL; - This = heap_alloc(sizeof(*This)); - if (!This) + if (!(object = calloc(1, sizeof(*object)))) return E_OUTOFMEMORY; - This->IWshExec_iface.lpVtbl = &WshExecVtbl; - This->ref = 1; + object->IWshExec_iface.lpVtbl = &WshExecVtbl; + object->ref = 1; - if (!CreateProcessW(NULL, command, NULL, NULL, FALSE, 0, NULL, NULL, &si, &This->info)) { - heap_free(This); + if (!CreateProcessW(NULL, command, NULL, NULL, FALSE, 0, NULL, NULL, &si, &object->info)) + { + free(object); return HRESULT_FROM_WIN32(GetLastError()); } - init_classinfo(&CLSID_WshExec, (IUnknown *)&This->IWshExec_iface, &This->classinfo); - *ret = &This->IWshExec_iface; + init_classinfo(&CLSID_WshExec, (IUnknown *)&object->IWshExec_iface, &object->classinfo); + *ret = &object->IWshExec_iface; + return S_OK; } @@ -383,7 +383,7 @@ static ULONG WINAPI WshEnvironment_Release(IWshEnvironment *iface) TRACE("(%p) ref = %d\n", This, ref); if (!ref) - heap_free(This); + free(This); return ref; } @@ -519,16 +519,16 @@ static const IWshEnvironmentVtbl WshEnvironmentVtbl = { static HRESULT WshEnvironment_Create(IWshEnvironment **env) { - WshEnvironment *This; + WshEnvironment *object; - This = heap_alloc(sizeof(*This)); - if (!This) return E_OUTOFMEMORY; + if (!(object = calloc(1, sizeof(*object)))) + return E_OUTOFMEMORY; - This->IWshEnvironment_iface.lpVtbl = &WshEnvironmentVtbl; - This->ref = 1; + object->IWshEnvironment_iface.lpVtbl = &WshEnvironmentVtbl; + object->ref = 1; - init_classinfo(&IID_IWshEnvironment, (IUnknown *)&This->IWshEnvironment_iface, &This->classinfo); - *env = &This->IWshEnvironment_iface; + init_classinfo(&IID_IWshEnvironment, (IUnknown *)&object->IWshEnvironment_iface, &object->classinfo); + *env = &object->IWshEnvironment_iface; return S_OK; } @@ -574,7 +574,7 @@ static ULONG WINAPI WshCollection_Release(IWshCollection *iface) TRACE("(%p) ref = %d\n", This, ref); if (!ref) - heap_free(This); + free(This); return ref; } @@ -718,16 +718,16 @@ static const IWshCollectionVtbl WshCollectionVtbl = { static HRESULT WshCollection_Create(IWshCollection **collection) { - WshCollection *This; + WshCollection *object; - This = heap_alloc(sizeof(*This)); - if (!This) return E_OUTOFMEMORY; + if (!(object = calloc(1, sizeof(*object)))) + return E_OUTOFMEMORY; - This->IWshCollection_iface.lpVtbl = &WshCollectionVtbl; - This->ref = 1; + object->IWshCollection_iface.lpVtbl = &WshCollectionVtbl; + object->ref = 1; - init_classinfo(&IID_IWshCollection, (IUnknown *)&This->IWshCollection_iface, &This->classinfo); - *collection = &This->IWshCollection_iface; + init_classinfo(&IID_IWshCollection, (IUnknown *)&object->IWshCollection_iface, &object->classinfo); + *collection = &object->IWshCollection_iface; return S_OK; } @@ -775,9 +775,9 @@ static ULONG WINAPI WshShortcut_Release(IWshShortcut *iface) if (!ref) { - SysFreeString(This->path_link); IShellLinkW_Release(This->link); - heap_free(This); + free(This->path_link); + free(This); } return ref; @@ -1070,35 +1070,34 @@ static const IWshShortcutVtbl WshShortcutVtbl = { static HRESULT WshShortcut_Create(const WCHAR *path, IDispatch **shortcut) { - WshShortcut *This; + WshShortcut *object; HRESULT hr; *shortcut = NULL; - This = heap_alloc(sizeof(*This)); - if (!This) return E_OUTOFMEMORY; + if (!(object = calloc(1, sizeof(*object)))) + return E_OUTOFMEMORY; - This->IWshShortcut_iface.lpVtbl = &WshShortcutVtbl; - This->ref = 1; + object->IWshShortcut_iface.lpVtbl = &WshShortcutVtbl; + object->ref = 1; - hr = CoCreateInstance(&CLSID_ShellLink, NULL, CLSCTX_INPROC_SERVER, - &IID_IShellLinkW, (void**)&This->link); + hr = CoCreateInstance(&CLSID_ShellLink, NULL, CLSCTX_INPROC_SERVER, &IID_IShellLinkW, (void **)&object->link); if (FAILED(hr)) { - heap_free(This); + free(object); return hr; } - This->path_link = SysAllocString(path); - if (!This->path_link) + object->path_link = wcsdup(path); + if (!object->path_link) { - IShellLinkW_Release(This->link); - heap_free(This); + IShellLinkW_Release(object->link); + free(object); return E_OUTOFMEMORY; } - init_classinfo(&IID_IWshShortcut, (IUnknown *)&This->IWshShortcut_iface, &This->classinfo); - *shortcut = (IDispatch*)&This->IWshShortcut_iface; + init_classinfo(&IID_IWshShortcut, (IUnknown *)&object->IWshShortcut_iface, &object->classinfo); + *shortcut = (IDispatch *)&object->IWshShortcut_iface; return S_OK; } @@ -1220,7 +1219,7 @@ static WCHAR *split_command( BSTR cmd, WCHAR **params ) WCHAR *ret, *ptr; BOOL in_quotes = FALSE; - if (!(ret = heap_alloc((lstrlenW(cmd) + 1) * sizeof(WCHAR)))) return NULL; + if (!(ret = malloc((lstrlenW(cmd) + 1) * sizeof(WCHAR)))) return NULL; lstrcpyW( ret, cmd ); *params = NULL; @@ -1283,7 +1282,7 @@ static HRESULT WINAPI WshShell3_Run(IWshShell3 *iface, BSTR cmd, VARIANT *style, info.nShow = V_I4(&s); ret = ShellExecuteExW(&info); - heap_free( file ); + free(file); if (!ret) { TRACE("ShellExecute failed, %d\n", GetLastError()); @@ -1454,7 +1453,7 @@ static HRESULT split_reg_path(const WCHAR *path, WCHAR **subkey, WCHAR **value) unsigned int len = *value - *subkey - 1; WCHAR *ret; - ret = heap_alloc((len + 1)*sizeof(WCHAR)); + ret = malloc((len + 1)*sizeof(WCHAR)); if (!ret) return E_OUTOFMEMORY; @@ -1494,7 +1493,7 @@ static HRESULT WINAPI WshShell3_RegRead(IWshShell3 *iface, BSTR name, VARIANT *v if (ret == ERROR_SUCCESS) { void *data; - data = heap_alloc(datalen); + data = malloc(datalen); if (!data) { hr = E_OUTOFMEMORY; goto fail; @@ -1502,7 +1501,7 @@ static HRESULT WINAPI WshShell3_RegRead(IWshShell3 *iface, BSTR name, VARIANT *v ret = RegGetValueW(root, subkey, val, RRF_RT_ANY, &type, data, &datalen); if (ret) { - heap_free(data); + free(data); hr = HRESULT_FROM_WIN32(ret); goto fail; } @@ -1592,7 +1591,7 @@ static HRESULT WINAPI WshShell3_RegRead(IWshShell3 *iface, BSTR name, VARIANT *v hr = E_FAIL; }; - heap_free(data); + free(data); if (FAILED(hr)) VariantInit(value); } @@ -1601,7 +1600,7 @@ static HRESULT WINAPI WshShell3_RegRead(IWshShell3 *iface, BSTR name, VARIANT *v fail: if (val) - heap_free(subkey); + free(subkey); return hr; } @@ -1684,7 +1683,7 @@ static HRESULT WINAPI WshShell3_RegWrite(IWshShell3 *iface, BSTR name, VARIANT * fail: VariantClear(&v); if (val) - heap_free(subkey); + free(subkey); return hr; } -- 2.11.4.GIT