[PATCH v2 0/2] MR2308: mfreadwrite/reader: Release device manager in source_reader_release.
-- v2: mfreadwrite/reader: Release device manager in source_reader_release. mfreadwrite/tests: Check refcount of device manager after release. https://gitlab.winehq.org/wine/wine/-/merge_requests/2308
From: Adrian Thiele <adrian.thiele(a)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: -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/2308
From: Adrian Thiele <adrian.thiele(a)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); -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/2308
This merge request was approved by Nikolay Sivov. -- https://gitlab.winehq.org/wine/wine/-/merge_requests/2308
participants (3)
-
Adrian Thiele -
Adrian Thiele (@athiele) -
Nikolay Sivov (@nsivov)