-- v2: mfreadwrite/reader: Release device manager in source_reader_release. mfreadwrite/tests: Check refcount of device manager after release.
From: Adrian Thiele adrian.thiele@live.de
--- dlls/mfreadwrite/tests/mfplat.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/dlls/mfreadwrite/tests/mfplat.c b/dlls/mfreadwrite/tests/mfplat.c index 83091b59380..4b7600b5113 100644 --- a/dlls/mfreadwrite/tests/mfplat.c +++ b/dlls/mfreadwrite/tests/mfplat.c @@ -1372,6 +1372,7 @@ static void test_reader_d3d9(void) HWND window; HRESULT hr; UINT token; + ULONG refcount;
window = create_window(); d3d9 = Direct3DCreate9(D3D_SDK_VERSION); @@ -1404,7 +1405,9 @@ static void test_reader_d3d9(void)
IMFSourceReader_Release(reader);
- IDirect3DDeviceManager9_Release(d3d9_manager); + refcount = IDirect3DDeviceManager9_Release(d3d9_manager); + todo_wine ok(!refcount, "Unexpected refcount %lu.\n", refcount); + IDirect3DDevice9_Release(d3d9_device);
done:
From: Adrian Thiele adrian.thiele@live.de
--- dlls/mfreadwrite/reader.c | 2 ++ dlls/mfreadwrite/tests/mfplat.c | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-)
diff --git a/dlls/mfreadwrite/reader.c b/dlls/mfreadwrite/reader.c index 5296e77f3c3..e21f4e10fa9 100644 --- a/dlls/mfreadwrite/reader.c +++ b/dlls/mfreadwrite/reader.c @@ -211,6 +211,8 @@ static ULONG source_reader_release(struct source_reader *reader)
if (!refcount) { + if (reader->device_manager) + IUnknown_Release(reader->device_manager); if (reader->async_callback) IMFSourceReaderCallback_Release(reader->async_callback); if (reader->descriptor) diff --git a/dlls/mfreadwrite/tests/mfplat.c b/dlls/mfreadwrite/tests/mfplat.c index 4b7600b5113..50d9d866a2c 100644 --- a/dlls/mfreadwrite/tests/mfplat.c +++ b/dlls/mfreadwrite/tests/mfplat.c @@ -1406,7 +1406,7 @@ static void test_reader_d3d9(void) IMFSourceReader_Release(reader);
refcount = IDirect3DDeviceManager9_Release(d3d9_manager); - todo_wine ok(!refcount, "Unexpected refcount %lu.\n", refcount); + ok(!refcount, "Unexpected refcount %lu.\n", refcount);
IDirect3DDevice9_Release(d3d9_device);
This merge request was approved by Nikolay Sivov.