[PATCH 6/6] qcap: Use malloc() instead of HeapAlloc() or CoTaskMemAlloc().

Zebediah Figura z.figura12 at gmail.com
Thu Nov 26 21:48:26 CST 2020


Signed-off-by: Zebediah Figura <z.figura12 at gmail.com>
---
 dlls/qcap/audiorecord.c    |  5 ++---
 dlls/qcap/avico.c          | 12 +++++-------
 dlls/qcap/avimux.c         | 26 ++++++++++++--------------
 dlls/qcap/capturegraph.c   |  4 ++--
 dlls/qcap/filewriter.c     | 11 +++++------
 dlls/qcap/qcap_private.h   |  1 -
 dlls/qcap/smartteefilter.c |  7 +++----
 dlls/qcap/vfwcapture.c     |  5 ++---
 8 files changed, 31 insertions(+), 40 deletions(-)

diff --git a/dlls/qcap/audiorecord.c b/dlls/qcap/audiorecord.c
index 0021e8dd982..4c5f6646953 100644
--- a/dlls/qcap/audiorecord.c
+++ b/dlls/qcap/audiorecord.c
@@ -47,7 +47,7 @@ static void audio_record_destroy(struct strmbase_filter *iface)
     AudioRecord *filter = impl_from_strmbase_filter(iface);
 
     strmbase_filter_cleanup(&filter->filter);
-    CoTaskMemFree(filter);
+    free(filter);
 }
 
 static HRESULT audio_record_query_interface(struct strmbase_filter *iface, REFIID iid, void **out)
@@ -144,9 +144,8 @@ HRESULT audio_record_create(IUnknown *outer, IUnknown **out)
 {
     AudioRecord *object;
 
-    if (!(object = CoTaskMemAlloc(sizeof(*object))))
+    if (!(object = calloc(1, sizeof(*object))))
         return E_OUTOFMEMORY;
-    memset(object, 0, sizeof(*object));
 
     object->IPersistPropertyBag_iface.lpVtbl = &PersistPropertyBagVtbl;
     strmbase_filter_init(&object->filter, outer, &CLSID_AudioRecord, &filter_ops);
diff --git a/dlls/qcap/avico.c b/dlls/qcap/avico.c
index f1730a394c5..fbcce49a441 100644
--- a/dlls/qcap/avico.c
+++ b/dlls/qcap/avico.c
@@ -85,13 +85,11 @@ static HRESULT fill_format_info(AVICompressor *This, VIDEOINFOHEADER *src_videoi
     }
 
     size += FIELD_OFFSET(VIDEOINFOHEADER, bmiHeader);
-    This->videoinfo = heap_alloc(size);
-    if(!This->videoinfo)
+    if (!(This->videoinfo = calloc(1, size)))
         return E_OUTOFMEMORY;
 
     This->videoinfo_size = size;
     This->driver_flags = icinfo.dwFlags;
-    memset(This->videoinfo, 0, sizeof(*This->videoinfo));
     ICCompressGetFormat(This->hic, &src_videoinfo->bmiHeader, &This->videoinfo->bmiHeader);
 
     This->videoinfo->dwBitRate = 10000000/src_videoinfo->AvgTimePerFrame * This->videoinfo->bmiHeader.biSizeImage * 8;
@@ -117,11 +115,11 @@ static void avi_compressor_destroy(struct strmbase_filter *iface)
 
     if (filter->hic)
         ICClose(filter->hic);
-    heap_free(filter->videoinfo);
+    free(filter->videoinfo);
     strmbase_sink_cleanup(&filter->sink);
     strmbase_source_cleanup(&filter->source);
     strmbase_filter_cleanup(&filter->filter);
-    heap_free(filter);
+    free(filter);
 }
 
 static HRESULT avi_compressor_query_interface(struct strmbase_filter *iface, REFIID iid, void **out)
@@ -401,7 +399,7 @@ static HRESULT sink_connect(struct strmbase_sink *iface, IPin *peer, const AM_ME
 static void sink_disconnect(struct strmbase_sink *iface)
 {
     AVICompressor *filter = impl_from_strmbase_pin(&iface->pin);
-    heap_free(filter->videoinfo);
+    free(filter->videoinfo);
     filter->videoinfo = NULL;
 }
 
@@ -470,7 +468,7 @@ HRESULT avi_compressor_create(IUnknown *outer, IUnknown **out)
 {
     AVICompressor *object;
 
-    if (!(object = heap_alloc_zero(sizeof(*object))))
+    if (!(object = calloc(1, sizeof(*object))))
         return E_OUTOFMEMORY;
 
     strmbase_filter_init(&object->filter, outer, &CLSID_AVICo, &filter_ops);
diff --git a/dlls/qcap/avimux.c b/dlls/qcap/avimux.c
index 38d4bb7c88c..0fcf5b8402a 100644
--- a/dlls/qcap/avimux.c
+++ b/dlls/qcap/avimux.c
@@ -125,12 +125,12 @@ static void avi_mux_destroy(struct strmbase_filter *iface)
         IMemAllocator_Release(filter->in[i]->samples_allocator);
         filter->in[i]->samples_allocator = NULL;
         strmbase_sink_cleanup(&filter->in[i]->pin);
-        heap_free(filter->in[i]);
+        free(filter->in[i]);
     }
 
-    heap_free(filter->idx1);
+    free(filter->idx1);
     strmbase_filter_cleanup(&filter->filter);
-    heap_free(filter);
+    free(filter);
     ObjectRefCount(FALSE);
 }
 
@@ -225,8 +225,7 @@ static HRESULT out_write(AviMux *This, const void *data, int size)
 static inline HRESULT idx1_add_entry(AviMux *avimux, DWORD ckid, DWORD flags, DWORD off, DWORD len)
 {
     if(avimux->idx1_entries == avimux->idx1_size) {
-        AVIINDEXENTRY *new_idx = HeapReAlloc(GetProcessHeap(), 0, avimux->idx1,
-                sizeof(*avimux->idx1)*2*avimux->idx1_size);
+        AVIINDEXENTRY *new_idx = realloc(avimux->idx1, sizeof(*avimux->idx1) * 2 * avimux->idx1_size);
         if(!new_idx)
             return E_OUTOFMEMORY;
 
@@ -576,8 +575,7 @@ static HRESULT avi_mux_init_stream(struct strmbase_filter *iface)
     This->idx1_entries = 0;
     if(!This->idx1_size) {
         This->idx1_size = 1024;
-        This->idx1 = HeapAlloc(GetProcessHeap(), 0, sizeof(*This->idx1)*This->idx1_size);
-        if(!This->idx1)
+        if (!(This->idx1 = malloc(sizeof(*This->idx1) * This->idx1_size)))
             return E_OUTOFMEMORY;
     }
 
@@ -1433,7 +1431,7 @@ static HRESULT avi_mux_sink_connect(struct strmbase_sink *iface, IPin *peer, con
             return hr;
 
         size = pmt->cbFormat - FIELD_OFFSET(VIDEOINFOHEADER, bmiHeader);
-        avimuxin->strf = CoTaskMemAlloc(sizeof(RIFFCHUNK) + ALIGN(FIELD_OFFSET(BITMAPINFO, bmiColors[vih->bmiHeader.biClrUsed])));
+        avimuxin->strf = malloc(sizeof(RIFFCHUNK) + ALIGN(FIELD_OFFSET(BITMAPINFO, bmiColors[vih->bmiHeader.biClrUsed])));
         avimuxin->strf->fcc = ckidSTREAMFORMAT;
         avimuxin->strf->cb = FIELD_OFFSET(BITMAPINFO, bmiColors[vih->bmiHeader.biClrUsed]);
         if(size > avimuxin->strf->cb)
@@ -1467,7 +1465,7 @@ static void avi_mux_sink_disconnect(struct strmbase_sink *iface)
         if(cur == avimuxin->samples_head)
             avimuxin->samples_head = NULL;
     }
-    CoTaskMemFree(avimuxin->strf);
+    free(avimuxin->strf);
     avimuxin->strf = NULL;
 }
 
@@ -1786,7 +1784,7 @@ static HRESULT create_input_pin(AviMux *avimux)
 
     swprintf(name, ARRAY_SIZE(name), L"Input %02u", avimux->input_pin_no + 1);
 
-    if (!(object = heap_alloc_zero(sizeof(*object))))
+    if (!(object = calloc(1, sizeof(*object))))
         return E_OUTOFMEMORY;
 
     strmbase_sink_init(&object->pin, &avimux->filter, name, &sink_ops, NULL);
@@ -1800,7 +1798,7 @@ static HRESULT create_input_pin(AviMux *avimux)
     if (FAILED(hr))
     {
         strmbase_sink_cleanup(&object->pin);
-        heap_free(object);
+        free(object);
         return hr;
     }
 
@@ -1810,7 +1808,7 @@ static HRESULT create_input_pin(AviMux *avimux)
     {
         IMemAllocator_Release(object->samples_allocator);
         strmbase_sink_cleanup(&object->pin);
-        heap_free(object);
+        free(object);
         return hr;
     }
 
@@ -1826,7 +1824,7 @@ HRESULT avi_mux_create(IUnknown *outer, IUnknown **out)
     AviMux *avimux;
     HRESULT hr;
 
-    if (!(avimux = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(AviMux))))
+    if (!(avimux = calloc(1, sizeof(AviMux))))
         return E_OUTOFMEMORY;
 
     strmbase_filter_init(&avimux->filter, outer, &CLSID_AviDest, &filter_ops);
@@ -1846,7 +1844,7 @@ HRESULT avi_mux_create(IUnknown *outer, IUnknown **out)
     if(FAILED(hr)) {
         strmbase_source_cleanup(&avimux->source);
         strmbase_filter_cleanup(&avimux->filter);
-        HeapFree(GetProcessHeap(), 0, avimux);
+        free(avimux);
         return hr;
     }
 
diff --git a/dlls/qcap/capturegraph.c b/dlls/qcap/capturegraph.c
index b98a321cb3a..b1569bbc3a3 100644
--- a/dlls/qcap/capturegraph.c
+++ b/dlls/qcap/capturegraph.c
@@ -55,7 +55,7 @@ HRESULT capture_graph_create(IUnknown *outer, IUnknown **out)
     if (outer)
         return CLASS_E_NOAGGREGATION;
 
-    if (!(object = CoTaskMemAlloc(sizeof(*object))))
+    if (!(object = calloc(1, sizeof(*object))))
         return E_OUTOFMEMORY;
 
     object->ICaptureGraphBuilder2_iface.lpVtbl = &builder2_Vtbl;
@@ -122,7 +122,7 @@ static ULONG WINAPI fnCaptureGraphBuilder2_Release(ICaptureGraphBuilder2 * iface
         DeleteCriticalSection(&This->csFilter);
         if (This->mygraph)
             IGraphBuilder_Release(This->mygraph);
-        CoTaskMemFree(This);
+        free(This);
         ObjectRefCount(FALSE);
     }
     return ref;
diff --git a/dlls/qcap/filewriter.c b/dlls/qcap/filewriter.c
index c67fe263d8d..6209287d379 100644
--- a/dlls/qcap/filewriter.c
+++ b/dlls/qcap/filewriter.c
@@ -161,10 +161,10 @@ static void file_writer_destroy(struct strmbase_filter *iface)
 {
     struct file_writer *filter = impl_from_strmbase_filter(iface);
 
-    heap_free(filter->filename);
+    free(filter->filename);
     strmbase_sink_cleanup(&filter->sink);
     strmbase_filter_cleanup(&filter->filter);
-    heap_free(filter);
+    free(filter);
 }
 
 static HRESULT file_writer_init_stream(struct strmbase_filter *iface)
@@ -245,11 +245,10 @@ static HRESULT WINAPI filesinkfilter_SetFileName(IFileSinkFilter *iface,
     if (mt)
         FIXME("Ignoring media type %p.\n", mt);
 
-    if (!(new_filename = heap_alloc((wcslen(filename) + 1) * sizeof(WCHAR))))
+    if (!(new_filename = wcsdup(filename)))
         return E_OUTOFMEMORY;
-    wcscpy(new_filename, filename);
 
-    heap_free(filter->filename);
+    free(filter->filename);
     filter->filename = new_filename;
     return S_OK;
 }
@@ -317,7 +316,7 @@ HRESULT file_writer_create(IUnknown *outer, IUnknown **out)
 {
     struct file_writer *object;
 
-    if (!(object = heap_alloc_zero(sizeof(*object))))
+    if (!(object = calloc(1, sizeof(*object))))
         return E_OUTOFMEMORY;
 
     strmbase_filter_init(&object->filter, outer, &CLSID_FileWriter, &filter_ops);
diff --git a/dlls/qcap/qcap_private.h b/dlls/qcap/qcap_private.h
index 29853862d1e..27b716882d3 100644
--- a/dlls/qcap/qcap_private.h
+++ b/dlls/qcap/qcap_private.h
@@ -26,7 +26,6 @@
 #define NONAMELESSUNION
 #include "dshow.h"
 #include "wine/debug.h"
-#include "wine/heap.h"
 #include "wine/strmbase.h"
 
 extern HINSTANCE qcap_instance DECLSPEC_HIDDEN;
diff --git a/dlls/qcap/smartteefilter.c b/dlls/qcap/smartteefilter.c
index 4e23e6ee467..ab32dce8e89 100644
--- a/dlls/qcap/smartteefilter.c
+++ b/dlls/qcap/smartteefilter.c
@@ -59,7 +59,7 @@ static void smart_tee_destroy(struct strmbase_filter *iface)
     strmbase_source_cleanup(&filter->capture);
     strmbase_source_cleanup(&filter->preview);
     strmbase_filter_cleanup(&filter->filter);
-    CoTaskMemFree(filter);
+    free(filter);
 }
 
 static HRESULT smart_tee_wait_state(struct strmbase_filter *iface, DWORD timeout)
@@ -319,9 +319,8 @@ HRESULT smart_tee_create(IUnknown *outer, IUnknown **out)
     SmartTeeFilter *object;
     HRESULT hr;
 
-    if (!(object = CoTaskMemAlloc(sizeof(*object))))
+    if (!(object = calloc(1, sizeof(*object))))
         return E_OUTOFMEMORY;
-    memset(object, 0, sizeof(*object));
 
     strmbase_filter_init(&object->filter, outer, &CLSID_SmartTee, &filter_ops);
     strmbase_sink_init(&object->sink, &object->filter, L"Input", &sink_ops, NULL);
@@ -330,7 +329,7 @@ HRESULT smart_tee_create(IUnknown *outer, IUnknown **out)
     if (FAILED(hr))
     {
         strmbase_filter_cleanup(&object->filter);
-        CoTaskMemFree(object);
+        free(object);
         return hr;
     }
 
diff --git a/dlls/qcap/vfwcapture.c b/dlls/qcap/vfwcapture.c
index ae6a9a055d1..9d1934e8295 100644
--- a/dlls/qcap/vfwcapture.c
+++ b/dlls/qcap/vfwcapture.c
@@ -106,7 +106,7 @@ static void vfw_capture_destroy(struct strmbase_filter *iface)
     DeleteCriticalSection(&filter->state_cs);
     strmbase_source_cleanup(&filter->source);
     strmbase_filter_cleanup(&filter->filter);
-    CoTaskMemFree(filter);
+    free(filter);
     ObjectRefCount(FALSE);
 }
 
@@ -852,7 +852,7 @@ HRESULT vfw_capture_create(IUnknown *outer, IUnknown **out)
     if (!InitOnceExecuteOnce(&init_once, load_capture_funcs, NULL, NULL) || !capture_funcs)
         return E_FAIL;
 
-    if (!(object = CoTaskMemAlloc(sizeof(*object))))
+    if (!(object = calloc(1, sizeof(*object))))
         return E_OUTOFMEMORY;
 
     strmbase_filter_init(&object->filter, outer, &CLSID_VfwCapture, &filter_ops);
@@ -862,7 +862,6 @@ HRESULT vfw_capture_create(IUnknown *outer, IUnknown **out)
     object->IAMVideoProcAmp_iface.lpVtbl = &IAMVideoProcAmp_VTable;
     object->IAMFilterMiscFlags_iface.lpVtbl = &IAMFilterMiscFlags_VTable;
     object->IPersistPropertyBag_iface.lpVtbl = &IPersistPropertyBag_VTable;
-    object->init = FALSE;
 
     strmbase_source_init(&object->source, &object->filter, L"Output", &source_ops);
 
-- 
2.29.2




More information about the wine-devel mailing list