-- v2: strmbase: Fix a critical section leak (Valgrind). quartz/tests: Fix some memory leaks in test_add_source_filter() (Valgrind).
From: Sven Baars sbaars@codeweavers.com
--- dlls/quartz/dsoundrender.c | 2 ++ 1 file changed, 2 insertions(+)
diff --git a/dlls/quartz/dsoundrender.c b/dlls/quartz/dsoundrender.c index 1abd4bdbcec..38a7d6f7ad7 100644 --- a/dlls/quartz/dsoundrender.c +++ b/dlls/quartz/dsoundrender.c @@ -536,6 +536,8 @@ static void dsound_render_destroy(struct strmbase_filter *iface) IDirectSound8_Release(filter->dsound); filter->dsound = NULL;
+ IUnknown_Release(filter->system_clock); + if (filter->sink.pin.peer) IPin_Disconnect(filter->sink.pin.peer); IPin_Disconnect(&filter->sink.pin.IPin_iface);
From: Sven Baars sbaars@codeweavers.com
--- dlls/quartz/tests/filtergraph.c | 5 +++++ 1 file changed, 5 insertions(+)
diff --git a/dlls/quartz/tests/filtergraph.c b/dlls/quartz/tests/filtergraph.c index 00232ea7a52..92baa0e74e8 100644 --- a/dlls/quartz/tests/filtergraph.c +++ b/dlls/quartz/tests/filtergraph.c @@ -23,6 +23,7 @@ #define CONST_VTABLE
#include "dshow.h" +#include "wine/strmbase.h" #include "wine/test.h"
static const GUID testguid = {0xabbccdde}; @@ -5076,6 +5077,8 @@ static void test_add_source_filter(void) ok(IsEqualGUID(&mt.majortype, &MEDIATYPE_Stream), "Got major type %s.\n", wine_dbgstr_guid(&mt.majortype)); ok(IsEqualGUID(&mt.subtype, &MEDIASUBTYPE_MPEG1Audio), "Got subtype %s.\n", wine_dbgstr_guid(&mt.subtype)); IFileSourceFilter_Release(filesource); + CoTaskMemFree(ret_filename); + FreeMediaType(&mt);
hr = IFilterGraph2_AddSourceFilter(graph, filename, L"test", &filter2); ok(hr == S_OK, "Got hr %#lx.\n", hr); @@ -5115,6 +5118,8 @@ static void test_add_source_filter(void) ok(IsEqualGUID(&mt.majortype, &MEDIATYPE_Stream), "Got major type %s.\n", wine_dbgstr_guid(&mt.majortype)); ok(IsEqualGUID(&mt.subtype, &MEDIATYPE_Midi), "Got subtype %s.\n", wine_dbgstr_guid(&mt.subtype)); IFileSourceFilter_Release(filesource); + CoTaskMemFree(ret_filename); + FreeMediaType(&mt);
hr = IFilterGraph2_RemoveFilter(graph, filter); ok(hr == S_OK, "Got hr %#lx.\n", hr);
From: Sven Baars sbaars@codeweavers.com
--- libs/strmbase/seeking.c | 1 + 1 file changed, 1 insertion(+)
diff --git a/libs/strmbase/seeking.c b/libs/strmbase/seeking.c index b3991f0a5b3..91e9ccedfb4 100644 --- a/libs/strmbase/seeking.c +++ b/libs/strmbase/seeking.c @@ -56,6 +56,7 @@ HRESULT strmbase_seeking_init(SourceSeeking *pSeeking, const IMediaSeekingVtbl *
void strmbase_seeking_cleanup(SourceSeeking *seeking) { + seeking->cs.DebugInfo->Spare[0] = 0; DeleteCriticalSection(&seeking->cs); }
This merge request was approved by Zebediah Figura.