From 294be173709708ce98cc83d8a1d51b014a068da0 Mon Sep 17 00:00:00 2001 From: Alex Henrie Date: Fri, 1 Sep 2023 21:19:39 -0600 Subject: [PATCH] shcore: Use CRT allocation functions. --- dlls/shcore/main.c | 61 +++++++++++++++++++++++----------------------- 1 file changed, 30 insertions(+), 31 deletions(-) diff --git a/dlls/shcore/main.c b/dlls/shcore/main.c index 278eeb82fd5..a195d8f307a 100644 --- a/dlls/shcore/main.c +++ b/dlls/shcore/main.c @@ -33,7 +33,6 @@ #include "shlwapi.h" #include "wine/debug.h" -#include "wine/heap.h" WINE_DEFAULT_DEBUG_CHANNEL(shcore); @@ -588,8 +587,8 @@ static ULONG WINAPI memstream_Release(IStream *iface) if (!refcount) { - heap_free(stream->u.mem.buffer); - heap_free(stream); + free(stream->u.mem.buffer); + free(stream); } return refcount; @@ -634,7 +633,7 @@ static HRESULT WINAPI memstream_Write(IStream *iface, const void *buff, ULONG bu if (length > stream->u.mem.length) { - BYTE *buffer = HeapReAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, stream->u.mem.buffer, length); + BYTE *buffer = _recalloc(stream->u.mem.buffer, 1, length); if (!buffer) return STG_E_INSUFFICIENTMEMORY; @@ -687,7 +686,7 @@ static HRESULT WINAPI memstream_SetSize(IStream *iface, ULARGE_INTEGER new_size) /* we cut off the high part here */ length = new_size.u.LowPart; - buffer = HeapReAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, stream->u.mem.buffer, length); + buffer = _recalloc(stream->u.mem.buffer, 1, length); if (!buffer) return STG_E_INSUFFICIENTMEMORY; @@ -836,13 +835,13 @@ static struct shstream *shstream_create(const IStreamVtbl *vtbl, const BYTE *dat if (!data) data_len = 0; - stream = heap_alloc(sizeof(*stream)); + stream = malloc(sizeof(*stream)); stream->IStream_iface.lpVtbl = vtbl; stream->refcount = 1; - stream->u.mem.buffer = heap_alloc(data_len); + stream->u.mem.buffer = malloc(data_len); if (!stream->u.mem.buffer) { - heap_free(stream); + free(stream); return NULL; } memcpy(stream->u.mem.buffer, data, data_len); @@ -888,8 +887,8 @@ static ULONG WINAPI filestream_Release(IStream *iface) if (!refcount) { CloseHandle(stream->u.file.handle); - heap_free(stream->u.file.path); - heap_free(stream); + free(stream->u.file.path); + free(stream); } return refcount; @@ -1157,14 +1156,14 @@ HRESULT WINAPI SHCreateStreamOnFileEx(const WCHAR *path, DWORD mode, DWORD attri if (hFile == INVALID_HANDLE_VALUE) return HRESULT_FROM_WIN32(GetLastError()); - stream = heap_alloc(sizeof(*stream)); + stream = malloc(sizeof(*stream)); stream->IStream_iface.lpVtbl = &filestreamvtbl; stream->refcount = 1; stream->u.file.handle = hFile; stream->u.file.mode = mode; len = lstrlenW(path); - stream->u.file.path = heap_alloc((len + 1) * sizeof(WCHAR)); + stream->u.file.path = malloc((len + 1) * sizeof(WCHAR)); memcpy(stream->u.file.path, path, (len + 1) * sizeof(WCHAR)); *ret = &stream->IStream_iface; @@ -1203,13 +1202,13 @@ HRESULT WINAPI SHCreateStreamOnFileA(const char *path, DWORD mode, IStream **str return HRESULT_FROM_WIN32(ERROR_PATH_NOT_FOUND); len = MultiByteToWideChar(CP_ACP, 0, path, -1, NULL, 0); - pathW = heap_alloc(len * sizeof(WCHAR)); + pathW = malloc(len * sizeof(WCHAR)); if (!pathW) return E_OUTOFMEMORY; MultiByteToWideChar(CP_ACP, 0, path, -1, pathW, len); hr = SHCreateStreamOnFileW(pathW, mode, stream); - heap_free(pathW); + free(pathW); return hr; } @@ -1233,8 +1232,8 @@ static ULONG WINAPI regstream_Release(IStream *iface) RegCloseKey(stream->u.mem.hkey); } CoTaskMemFree(stream->u.mem.valuename); - heap_free(stream->u.mem.buffer); - heap_free(stream); + free(stream->u.mem.buffer); + free(stream); } return refcount; @@ -1284,16 +1283,16 @@ IStream * WINAPI SHOpenRegStream2W(HKEY hKey, const WCHAR *subkey, const WCHAR * ret = RegQueryValueExW(hStrKey, value, 0, 0, 0, &length); if (ret == ERROR_SUCCESS && length) { - buff = heap_alloc(length); + buff = malloc(length); RegQueryValueExW(hStrKey, value, 0, 0, buff, &length); } } if (!length) - buff = heap_alloc(length); + buff = malloc(length); stream = shstream_create(®streamvtbl, buff, length); - heap_free(buff); + free(buff); if (stream) { stream->u.mem.hkey = hStrKey; @@ -1458,7 +1457,7 @@ static ULONG WINAPI threadref_Release(IUnknown *iface) TRACE("%p, refcount %ld.\n", threadref, refcount); if (!refcount) - heap_free(threadref); + free(threadref); return refcount; } @@ -1484,7 +1483,7 @@ HRESULT WINAPI SHCreateThreadRef(LONG *refcount, IUnknown **out) *out = NULL; - threadref = heap_alloc(sizeof(*threadref)); + threadref = malloc(sizeof(*threadref)); if (!threadref) return E_OUTOFMEMORY; threadref->IUnknown_iface.lpVtbl = &threadrefvtbl; @@ -1993,10 +1992,10 @@ DWORD WINAPI SHCopyKeyW(HKEY hkey_src, const WCHAR *subkey, HKEY hkey_dst, DWORD max_key_len = max(max_key_len, max_value_len); if (max_key_len++ > MAX_PATH - 1) - ptr_name = heap_alloc(max_key_len * sizeof(WCHAR)); + ptr_name = malloc(max_key_len * sizeof(WCHAR)); if (max_data_len > sizeof(buff)) - ptr = heap_alloc(max_data_len); + ptr = malloc(max_data_len); if (!ptr_name || !ptr) ret = ERROR_NOT_ENOUGH_MEMORY; @@ -2040,9 +2039,9 @@ DWORD WINAPI SHCopyKeyW(HKEY hkey_src, const WCHAR *subkey, HKEY hkey_dst, DWORD /* Free buffers if allocated */ if (ptr_name != name) - heap_free(ptr_name); + free(ptr_name); if (ptr != buff) - heap_free(ptr); + free(ptr); if (subkey && hkey_src) RegCloseKey(hkey_src); @@ -2118,20 +2117,20 @@ DWORD WINAPI SHQueryValueExW(HKEY hkey, const WCHAR *name, DWORD *reserved, DWOR if (!buff || ret == ERROR_MORE_DATA) { length = data_len; - value = heap_alloc(length); + value = malloc(length); RegQueryValueExW(hkey, name, reserved, NULL, (BYTE *)value, &length); length = ExpandEnvironmentStringsW(value, NULL, 0); } else { length = (lstrlenW(buff) + 1) * sizeof(WCHAR); - value = heap_alloc(length); + value = malloc(length); memcpy(value, buff, length); length = ExpandEnvironmentStringsW(value, buff, *buff_len / sizeof(WCHAR)); if (length > *buff_len) ret = ERROR_MORE_DATA; } data_len = max(data_len, length); - heap_free(value); + free(value); } if (type) @@ -2166,20 +2165,20 @@ DWORD WINAPI SHQueryValueExA(HKEY hkey, const char *name, DWORD *reserved, DWORD if (!buff || ret == ERROR_MORE_DATA) { length = data_len; - value = heap_alloc(length); + value = malloc(length); RegQueryValueExA(hkey, name, reserved, NULL, (BYTE *)value, &length); length = ExpandEnvironmentStringsA(value, NULL, 0); } else { length = strlen(buff) + 1; - value = heap_alloc(length); + value = malloc(length); memcpy(value, buff, length); length = ExpandEnvironmentStringsA(value, buff, *buff_len); if (length > *buff_len) ret = ERROR_MORE_DATA; } data_len = max(data_len, length); - heap_free(value); + free(value); } if (type)