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);