From 15cbe4979867955d44f86d2617527dc5d270728a Mon Sep 17 00:00:00 2001 From: Alex Henrie Date: Mon, 7 Nov 2022 21:54:14 -0700 Subject: [PATCH] mscoree: Use standard C functions for memory allocation in assembly.c. The big win here is getting rid of the reimplementation of wcsdup. --- dlls/mscoree/assembly.c | 28 +++++++--------------------- 1 file changed, 7 insertions(+), 21 deletions(-) diff --git a/dlls/mscoree/assembly.c b/dlls/mscoree/assembly.c index 240225a14da..8a209dad425 100644 --- a/dlls/mscoree/assembly.c +++ b/dlls/mscoree/assembly.c @@ -79,20 +79,6 @@ struct tagASSEMBLY METADATAHDR *metadatahdr; }; -static inline LPWSTR strdupW(LPCWSTR src) -{ - LPWSTR dest; - - if (!src) - return NULL; - - dest = HeapAlloc(GetProcessHeap(), 0, (lstrlenW(src) + 1) * sizeof(WCHAR)); - if (dest) - lstrcpyW(dest, src); - - return dest; -} - static void* assembly_rva_to_va(ASSEMBLY *assembly, ULONG rva) { if (assembly->is_mapped_file) @@ -130,7 +116,7 @@ static HRESULT parse_metadata_header(ASSEMBLY *assembly, DWORD *hdrsz) metadatahdr = (METADATAHDR *)ptr; - assembly->metadatahdr = HeapAlloc(GetProcessHeap(), 0, sizeof(METADATAHDR)); + assembly->metadatahdr = malloc(sizeof(METADATAHDR)); if (!assembly->metadatahdr) return E_OUTOFMEMORY; @@ -210,13 +196,13 @@ HRESULT assembly_create(ASSEMBLY **out, LPCWSTR file) *out = NULL; - assembly = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(ASSEMBLY)); + assembly = calloc(1, sizeof(ASSEMBLY)); if (!assembly) return E_OUTOFMEMORY; assembly->is_mapped_file = TRUE; - assembly->path = strdupW(file); + assembly->path = wcsdup(file); if (!assembly->path) { hr = E_OUTOFMEMORY; @@ -264,7 +250,7 @@ HRESULT assembly_from_hmodule(ASSEMBLY **out, HMODULE hmodule) *out = NULL; - assembly = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(ASSEMBLY)); + assembly = calloc(1, sizeof(ASSEMBLY)); if (!assembly) return E_OUTOFMEMORY; @@ -292,9 +278,9 @@ HRESULT assembly_release(ASSEMBLY *assembly) CloseHandle(assembly->hmap); CloseHandle(assembly->hfile); } - HeapFree(GetProcessHeap(), 0, assembly->metadatahdr); - HeapFree(GetProcessHeap(), 0, assembly->path); - HeapFree(GetProcessHeap(), 0, assembly); + free(assembly->metadatahdr); + free(assembly->path); + free(assembly); return S_OK; }