Module: wine Branch: master Commit: fb083f4f37e5d76ce5350029ff6c50a8e55cbcf4 URL: https://gitlab.winehq.org/wine/wine/-/commit/fb083f4f37e5d76ce5350029ff6c50a...
Author: Nikolay Sivov nsivov@codeweavers.com Date: Tue Jun 20 11:54:10 2023 +0200
oleaut32/recinfo: Use CoTaskMem* allocations for the record data.
---
dlls/oleaut32/recinfo.c | 6 ++---- dlls/oleaut32/variant.c | 7 ++++--- 2 files changed, 6 insertions(+), 7 deletions(-)
diff --git a/dlls/oleaut32/recinfo.c b/dlls/oleaut32/recinfo.c index 7e1cb957af9..8b6d61adc69 100644 --- a/dlls/oleaut32/recinfo.c +++ b/dlls/oleaut32/recinfo.c @@ -524,7 +524,7 @@ static PVOID WINAPI IRecordInfoImpl_RecordCreate(IRecordInfo *iface)
TRACE("(%p)\n", This);
- record = HeapAlloc(GetProcessHeap(), 0, This->size); + record = CoTaskMemAlloc(This->size); IRecordInfo_RecordInit(iface, record); TRACE("created record at %p\n", record); return record; @@ -555,9 +555,7 @@ static HRESULT WINAPI IRecordInfoImpl_RecordDestroy(IRecordInfo *iface, PVOID pv if(FAILED(hres)) return hres;
- if(!HeapFree(GetProcessHeap(), 0, pvRecord)) - return E_INVALIDARG; - + CoTaskMemFree(pvRecord); return S_OK; }
diff --git a/dlls/oleaut32/variant.c b/dlls/oleaut32/variant.c index 8c2aa3b729d..8186a0b3856 100644 --- a/dlls/oleaut32/variant.c +++ b/dlls/oleaut32/variant.c @@ -686,11 +686,12 @@ static HRESULT VARIANT_CopyIRecordInfo(VARIANT *dest, const VARIANT *src) hr = IRecordInfo_GetSize(src_rec->pRecInfo, &size); if (FAILED(hr)) return hr;
- /* This could look cleaner if only RecordCreate() was used, but native doesn't use it. - Memory should be allocated in a same way as RecordCreate() does, so RecordDestroy() + /* Windows does not use RecordCreate() here, memory should be allocated in compatible way so RecordDestroy() could free it later. */ - dest_rec->pvRecord = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, size); + dest_rec->pvRecord = CoTaskMemAlloc(size); if (!dest_rec->pvRecord) return E_OUTOFMEMORY; + if (size) + memset(dest_rec->pvRecord, 0, size);
dest_rec->pRecInfo = src_rec->pRecInfo; IRecordInfo_AddRef(src_rec->pRecInfo);