From: Alex Henrie alexhenrie24@gmail.com
--- dlls/mmdevapi/audiosessionmanager.c | 4 +-- dlls/mmdevapi/audiovolume.c | 4 +-- dlls/mmdevapi/client.c | 6 ++--- dlls/mmdevapi/devenum.c | 40 ++++++++++++++--------------- dlls/mmdevapi/main.c | 4 +-- dlls/mmdevapi/session.c | 14 +++------- dlls/mmdevapi/spatialaudio.c | 33 ++++++++++++------------ 7 files changed, 49 insertions(+), 56 deletions(-)
diff --git a/dlls/mmdevapi/audiosessionmanager.c b/dlls/mmdevapi/audiosessionmanager.c index ba23634e54d..5486b3fa40c 100644 --- a/dlls/mmdevapi/audiosessionmanager.c +++ b/dlls/mmdevapi/audiosessionmanager.c @@ -90,7 +90,7 @@ static ULONG WINAPI ASM_Release(IAudioSessionManager2 *iface) TRACE("(%p) new ref %lu\n", This, ref);
if (!ref) - HeapFree(GetProcessHeap(), 0, This); + free(This);
return ref; } @@ -192,7 +192,7 @@ HRESULT AudioSessionManager_Create(IMMDevice *device, IAudioSessionManager2 **pp { struct session_mgr *This;
- This = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(*This)); + This = calloc(1, sizeof(*This)); if (!This) return E_OUTOFMEMORY;
diff --git a/dlls/mmdevapi/audiovolume.c b/dlls/mmdevapi/audiovolume.c index b50d30ce07d..61efcc89619 100644 --- a/dlls/mmdevapi/audiovolume.c +++ b/dlls/mmdevapi/audiovolume.c @@ -53,7 +53,7 @@ static inline AEVImpl *impl_from_IAudioEndpointVolumeEx(IAudioEndpointVolumeEx *
static void AudioEndpointVolume_Destroy(AEVImpl *This) { - HeapFree(GetProcessHeap(), 0, This); + free(This); }
static HRESULT WINAPI AEV_QueryInterface(IAudioEndpointVolumeEx *iface, REFIID riid, void **ppv) @@ -309,7 +309,7 @@ HRESULT AudioEndpointVolume_Create(MMDevice *parent, IAudioEndpointVolumeEx **pp AEVImpl *This;
*ppv = NULL; - This = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(*This)); + This = calloc(1, sizeof(*This)); if (!This) return E_OUTOFMEMORY; This->IAudioEndpointVolumeEx_iface.lpVtbl = &AEVImpl_Vtbl; diff --git a/dlls/mmdevapi/client.c b/dlls/mmdevapi/client.c index d8aad762627..8146f8a53b4 100644 --- a/dlls/mmdevapi/client.c +++ b/dlls/mmdevapi/client.c @@ -460,7 +460,7 @@ static ULONG WINAPI client_Release(IAudioClient3 *iface) if (This->stream) stream_release(This->stream, This->timer_thread);
- HeapFree(GetProcessHeap(), 0, This); + free(This); }
return ref; @@ -1404,7 +1404,7 @@ HRESULT AudioClient_Create(GUID *guid, IMMDevice *device, IAudioClient **out) }
size = strlen(name) + 1; - This = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, FIELD_OFFSET(struct audio_client, device_name[size])); + This = calloc(1, FIELD_OFFSET(struct audio_client, device_name[size])); if (!This) { free(name); return E_OUTOFMEMORY; @@ -1425,7 +1425,7 @@ HRESULT AudioClient_Create(GUID *guid, IMMDevice *device, IAudioClient **out)
hr = CoCreateFreeThreadedMarshaler((IUnknown *)&This->IAudioClient3_iface, &This->marshal); if (FAILED(hr)) { - HeapFree(GetProcessHeap(), 0, This); + free(This); return hr; }
diff --git a/dlls/mmdevapi/devenum.c b/dlls/mmdevapi/devenum.c index 34fa5a66802..2900d222795 100644 --- a/dlls/mmdevapi/devenum.c +++ b/dlls/mmdevapi/devenum.c @@ -336,7 +336,7 @@ static MMDevice *MMDevice_Create(WCHAR *name, GUID *id, EDataFlow flow, DWORD st
if(!cur){ /* No device found, allocate new one */ - cur = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(*cur)); + cur = calloc(1, sizeof(*cur)); if (!cur) return NULL;
@@ -350,7 +350,7 @@ static MMDevice *MMDevice_Create(WCHAR *name, GUID *id, EDataFlow flow, DWORD st }else if(cur->ref > 0) WARN("Modifying an MMDevice with postitive reference count!\n");
- HeapFree(GetProcessHeap(), 0, cur->drv_id); + free(cur->drv_id); cur->drv_id = name;
cur->flow = flow; @@ -483,7 +483,7 @@ HRESULT load_devices_from_reg(void) && pv.vt == VT_LPWSTR) { DWORD size_bytes = (lstrlenW(pv.pwszVal) + 1) * sizeof(WCHAR); - WCHAR *name = HeapAlloc(GetProcessHeap(), 0, size_bytes); + WCHAR *name = malloc(size_bytes); memcpy(name, pv.pwszVal, size_bytes); MMDevice_Create(name, &guid, curflow, DEVICE_STATE_NOTPRESENT, FALSE); @@ -536,16 +536,16 @@ HRESULT load_driver_devices(EDataFlow flow) params.size = 1024; params.endpoints = NULL; do { - HeapFree(GetProcessHeap(), 0, params.endpoints); - params.endpoints = HeapAlloc(GetProcessHeap(), 0, params.size); + free(params.endpoints); + params.endpoints = malloc(params.size); __wine_unix_call(drvs.module_unixlib, get_endpoint_ids, ¶ms); } while (params.result == HRESULT_FROM_WIN32(ERROR_INSUFFICIENT_BUFFER));
if (FAILED(params.result)) goto end;
- ids = HeapAlloc(GetProcessHeap(), 0, params.num * sizeof(*ids)); - guids = HeapAlloc(GetProcessHeap(), 0, params.num * sizeof(*guids)); + ids = malloc(params.num * sizeof(*ids)); + guids = malloc(params.num * sizeof(*guids)); if (!ids || !guids) { params.result = E_OUTOFMEMORY; goto end; @@ -556,8 +556,8 @@ HRESULT load_driver_devices(EDataFlow flow) const char *dev_name = (char *)params.endpoints + params.endpoints[i].device; const unsigned int size = (wcslen(name) + 1) * sizeof(WCHAR);
- if (!(ids[i] = HeapAlloc(GetProcessHeap(), 0, size))) { - while (i--) HeapFree(GetProcessHeap(), 0, ids[i]); + if (!(ids[i] = malloc(size))) { + while (i--) free(ids[i]); params.result = E_OUTOFMEMORY; goto end; } @@ -573,9 +573,9 @@ HRESULT load_driver_devices(EDataFlow flow) }
end: - HeapFree(GetProcessHeap(), 0, params.endpoints); - HeapFree(GetProcessHeap(), 0, guids); - HeapFree(GetProcessHeap(), 0, ids); + free(params.endpoints); + free(guids); + free(ids);
return params.result; } @@ -586,8 +586,8 @@ static void MMDevice_Destroy(MMDevice *This) list_remove(&This->entry); This->crst.DebugInfo->Spare[0] = 0; DeleteCriticalSection(&This->crst); - HeapFree(GetProcessHeap(), 0, This->drv_id); - HeapFree(GetProcessHeap(), 0, This); + free(This->drv_id); + free(This); }
static inline MMDevice *impl_from_IMMDevice(IMMDevice *iface) @@ -828,7 +828,7 @@ static HRESULT MMDevCol_Create(IMMDeviceCollection **ppv, EDataFlow flow, DWORD { MMDevColImpl *This;
- This = HeapAlloc(GetProcessHeap(), 0, sizeof(*This)); + This = malloc(sizeof(*This)); *ppv = NULL; if (!This) return E_OUTOFMEMORY; @@ -842,7 +842,7 @@ static HRESULT MMDevCol_Create(IMMDeviceCollection **ppv, EDataFlow flow, DWORD
static void MMDevCol_Destroy(MMDevColImpl *This) { - HeapFree(GetProcessHeap(), 0, This); + free(This); }
static HRESULT WINAPI MMDevCol_QueryInterface(IMMDeviceCollection *iface, REFIID riid, void **ppv) @@ -1288,7 +1288,7 @@ static HRESULT WINAPI MMDevEnum_RegisterEndpointNotificationCallback(IMMDeviceEn if(!client) return E_POINTER;
- wrapper = HeapAlloc(GetProcessHeap(), 0, sizeof(*wrapper)); + wrapper = malloc(sizeof(*wrapper)); if(!wrapper) return E_OUTOFMEMORY;
@@ -1324,7 +1324,7 @@ static HRESULT WINAPI MMDevEnum_UnregisterEndpointNotificationCallback(IMMDevice LIST_FOR_EACH_ENTRY(wrapper, &g_notif_clients, struct NotificationClientWrapper, entry){ if(wrapper->client == client){ list_remove(&wrapper->entry); - HeapFree(GetProcessHeap(), 0, wrapper); + free(wrapper); LeaveCriticalSection(&g_notif_lock); return S_OK; } @@ -1363,7 +1363,7 @@ static HRESULT MMDevPropStore_Create(MMDevice *parent, DWORD access, IPropertySt WARN("Invalid access %08lx\n", access); return E_INVALIDARG; } - This = HeapAlloc(GetProcessHeap(), 0, sizeof(*This)); + This = malloc(sizeof(*This)); *ppv = &This->IPropertyStore_iface; if (!This) return E_OUTOFMEMORY; @@ -1376,7 +1376,7 @@ static HRESULT MMDevPropStore_Create(MMDevice *parent, DWORD access, IPropertySt
static void MMDevPropStore_Destroy(MMDevPropStore *This) { - HeapFree(GetProcessHeap(), 0, This); + free(This); }
static HRESULT WINAPI MMDevPropStore_QueryInterface(IPropertyStore *iface, REFIID riid, void **ppv) diff --git a/dlls/mmdevapi/main.c b/dlls/mmdevapi/main.c index 12a81ba9aa5..dfc6183aa7d 100644 --- a/dlls/mmdevapi/main.c +++ b/dlls/mmdevapi/main.c @@ -380,7 +380,7 @@ static ULONG WINAPI activate_async_op_Release(IActivateAudioInterfaceAsyncOperat if(This->result_iface) IUnknown_Release(This->result_iface); IActivateAudioInterfaceCompletionHandler_Release(This->callback); - HeapFree(GetProcessHeap(), 0, This); + free(This); } return ref; } @@ -477,7 +477,7 @@ HRESULT WINAPI ActivateAudioInterfaceAsync(const WCHAR *path, REFIID riid, TRACE("(%s, %s, %p, %p, %p)\n", debugstr_w(path), debugstr_guid(riid), params, done_handler, op_out);
- op = HeapAlloc(GetProcessHeap(), 0, sizeof(*op)); + op = malloc(sizeof(*op)); if (!op) return E_OUTOFMEMORY;
diff --git a/dlls/mmdevapi/session.c b/dlls/mmdevapi/session.c index 7b5db187977..112c0c52fb9 100644 --- a/dlls/mmdevapi/session.c +++ b/dlls/mmdevapi/session.c @@ -99,7 +99,7 @@ static ULONG WINAPI control_Release(IAudioSessionControl2 *iface) IAudioClient3_Release(&This->client->IAudioClient3_iface); }
- HeapFree(GetProcessHeap(), 0, This); + free(This); }
return ref; @@ -557,12 +557,7 @@ static void session_init_vols(struct audio_session *session, UINT channels) if (session->channel_count < channels) { UINT i;
- if (session->channel_vols) - session->channel_vols = HeapReAlloc(GetProcessHeap(), 0, session->channel_vols, - sizeof(float) * channels); - else - session->channel_vols = HeapAlloc(GetProcessHeap(), 0, sizeof(float) * channels); - + session->channel_vols = realloc(session->channel_vols, sizeof(float) * channels); if (!session->channel_vols) return;
@@ -575,8 +570,7 @@ static void session_init_vols(struct audio_session *session, UINT channels)
static struct audio_session *session_create(const GUID *guid, IMMDevice *device, UINT channels) { - struct audio_session *ret = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, - sizeof(struct audio_session)); + struct audio_session *ret = calloc(1, sizeof(struct audio_session)); if (!ret) return NULL;
@@ -599,7 +593,7 @@ struct audio_session_wrapper *session_wrapper_create(struct audio_client *client { struct audio_session_wrapper *ret;
- ret = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(struct audio_session_wrapper)); + ret = calloc(1, sizeof(struct audio_session_wrapper)); if (!ret) return NULL;
diff --git a/dlls/mmdevapi/spatialaudio.c b/dlls/mmdevapi/spatialaudio.c index 9bd14038e1d..23f3de31428 100644 --- a/dlls/mmdevapi/spatialaudio.c +++ b/dlls/mmdevapi/spatialaudio.c @@ -24,7 +24,6 @@ #include "winbase.h" #include "winnls.h" #include "winreg.h" -#include "wine/heap.h" #include "wine/debug.h" #include "wine/list.h"
@@ -160,8 +159,8 @@ static ULONG WINAPI SAO_Release(ISpatialAudioObject *iface) LeaveCriticalSection(&This->sa_stream->lock);
ISpatialAudioObjectRenderStream_Release(&This->sa_stream->ISpatialAudioObjectRenderStream_iface); - heap_free(This->buf); - heap_free(This); + free(This->buf); + free(This); } return ref; } @@ -288,11 +287,11 @@ static ULONG WINAPI SAORS_Release(ISpatialAudioObjectRenderStream *iface) IAudioClient_Release(This->client); if(This->params.NotifyObject) ISpatialAudioObjectRenderStreamNotify_Release(This->params.NotifyObject); - heap_free((void*)This->params.ObjectFormat); + free((void*)This->params.ObjectFormat); CloseHandle(This->params.EventHandle); DeleteCriticalSection(&This->lock); ISpatialAudioClient_Release(&This->sa_client->ISpatialAudioClient_iface); - heap_free(This); + free(This); } return ref; } @@ -469,7 +468,7 @@ static HRESULT WINAPI SAORS_ActivateSpatialAudioObject(ISpatialAudioObjectRender return SPTLAUDCLNT_E_OBJECT_ALREADY_ACTIVE; }
- obj = heap_alloc_zero(sizeof(*obj)); + obj = calloc(1, sizeof(*obj)); obj->ISpatialAudioObject_iface.lpVtbl = &ISpatialAudioObject_vtbl; obj->ref = 1; obj->type = type; @@ -483,7 +482,7 @@ static HRESULT WINAPI SAORS_ActivateSpatialAudioObject(ISpatialAudioObjectRender obj->sa_stream = This; SAORS_AddRef(&This->ISpatialAudioObjectRenderStream_iface);
- obj->buf = heap_alloc_zero(This->period_frames * This->sa_client->object_fmtex.Format.nBlockAlign); + obj->buf = calloc(This->period_frames, This->sa_client->object_fmtex.Format.nBlockAlign);
EnterCriticalSection(&This->lock);
@@ -548,7 +547,7 @@ static ULONG WINAPI SAC_Release(ISpatialAudioClient *iface) TRACE("(%p) new ref %lu\n", This, ref); if (!ref) { IMMDevice_Release(This->mmdev); - heap_free(This); + free(This); } return ref; } @@ -626,7 +625,7 @@ static HRESULT WINAPI SAC_IsSpatialAudioStreamAvailable(ISpatialAudioClient *ifa
static WAVEFORMATEX *clone_fmtex(const WAVEFORMATEX *src) { - WAVEFORMATEX *r = heap_alloc(sizeof(WAVEFORMATEX) + src->cbSize); + WAVEFORMATEX *r = malloc(sizeof(WAVEFORMATEX) + src->cbSize); memcpy(r, src, sizeof(WAVEFORMATEX) + src->cbSize); return r; } @@ -783,7 +782,7 @@ static HRESULT WINAPI SAC_ActivateSpatialAudioStream(ISpatialAudioClient *iface, return AUDCLNT_E_UNSUPPORTED_FORMAT; }
- obj = heap_alloc_zero(sizeof(SpatialAudioStreamImpl)); + obj = calloc(1, sizeof(SpatialAudioStreamImpl));
obj->ISpatialAudioObjectRenderStream_iface.lpVtbl = &ISpatialAudioObjectRenderStream_vtbl; obj->ref = 1; @@ -821,10 +820,10 @@ static HRESULT WINAPI SAC_ActivateSpatialAudioStream(ISpatialAudioClient *iface, if(obj->params.NotifyObject) ISpatialAudioObjectRenderStreamNotify_Release(obj->params.NotifyObject); DeleteCriticalSection(&obj->lock); - heap_free((void*)obj->params.ObjectFormat); + free((void*)obj->params.ObjectFormat); CloseHandle(obj->params.EventHandle); ISpatialAudioClient_Release(&obj->sa_client->ISpatialAudioClient_iface); - heap_free(obj); + free(obj); *stream = NULL; return hr; } @@ -913,7 +912,7 @@ HRESULT SpatialAudioClient_Create(IMMDevice *mmdev, ISpatialAudioClient **out) WAVEFORMATEX *closest; HRESULT hr;
- obj = heap_alloc_zero(sizeof(*obj)); + obj = calloc(1, sizeof(*obj));
obj->ref = 1; obj->ISpatialAudioClient_iface.lpVtbl = &ISpatialAudioClient_vtbl; @@ -931,7 +930,7 @@ HRESULT SpatialAudioClient_Create(IMMDevice *mmdev, ISpatialAudioClient **out) CLSCTX_INPROC_SERVER, NULL, (void**)&aclient); if(FAILED(hr)){ WARN("Activate failed: %08lx\n", hr); - heap_free(obj); + free(obj); return hr; }
@@ -943,7 +942,7 @@ HRESULT SpatialAudioClient_Create(IMMDevice *mmdev, ISpatialAudioClient **out) if(sizeof(WAVEFORMATEX) + closest->cbSize > sizeof(obj->object_fmtex)){ ERR("Returned format too large: %s\n", debugstr_fmtex(closest)); CoTaskMemFree(closest); - heap_free(obj); + free(obj); return AUDCLNT_E_UNSUPPORTED_FORMAT; }else if(!((closest->wFormatTag == WAVE_FORMAT_IEEE_FLOAT || (closest->wFormatTag == WAVE_FORMAT_EXTENSIBLE && @@ -952,7 +951,7 @@ HRESULT SpatialAudioClient_Create(IMMDevice *mmdev, ISpatialAudioClient **out) closest->wBitsPerSample == 32)){ ERR("Returned format not 32-bit float: %s\n", debugstr_fmtex(closest)); CoTaskMemFree(closest); - heap_free(obj); + free(obj); return AUDCLNT_E_UNSUPPORTED_FORMAT; } WARN("The audio stack doesn't support 48kHz 32bit float. Using the closest match. Audio may be glitchy. %s\n", debugstr_fmtex(closest)); @@ -962,7 +961,7 @@ HRESULT SpatialAudioClient_Create(IMMDevice *mmdev, ISpatialAudioClient **out) CoTaskMemFree(closest); } else if(hr != S_OK){ WARN("Checking supported formats failed: %08lx\n", hr); - heap_free(obj); + free(obj); return hr; }
@davidebeatrici will this conflict with your ongoing changes? If so, we can ignore this for now.
On Thu Aug 24 07:22:15 2023 +0000, Huw Davies wrote:
@davidebeatrici will this conflict with your ongoing changes? If so, we can ignore this for now.
No, it's fine. Thank you for your concern.
This merge request was approved by Huw Davies.