[PATCH 0/1] MR2308: mfreadwrite/reader: Release device manager in source_reader_release.
From: Adrian Thiele <adrian.thiele(a)live.de> --- dlls/mfreadwrite/reader.c | 2 ++ 1 file changed, 2 insertions(+) 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) -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/2308
Derek Lesho (@dlesho) commented about dlls/mfreadwrite/reader.c:
if (!refcount) { + if (reader->device_manager) + IUnknown_Release(reader->device_manager);
This should be IMFDXGIDeviceManager_Release instead of IUnknown_Release. -- https://gitlab.winehq.org/wine/wine/-/merge_requests/2308#note_25885
On Wed Mar 1 12:54:17 2023 +0000, Derek Lesho wrote:
This should be IMFDXGIDeviceManager_Release instead of IUnknown_Release. Well, looking at the [code where device_manager is assigned](https://gitlab.winehq.org/wine/wine/-/blob/56db5b0bf1aa6df5edbedbec03e0a1db3...), it could also be a IDirect3DDeviceManager9. And device_manager is defined as type IUnknown inside the source_reader struct, so I'm unsure if using `IMFDXGIDeviceManager_Release` would be correct (mingw warns about incompatible pointer type with that).
-- https://gitlab.winehq.org/wine/wine/-/merge_requests/2308#note_25886
On Wed Mar 1 13:13:50 2023 +0000, Adrian Thiele wrote:
Well, looking at the [code where device_manager is assigned](https://gitlab.winehq.org/wine/wine/-/blob/56db5b0bf1aa6df5edbedbec03e0a1db3...), it could also be a IDirect3DDeviceManager9. And device_manager is defined as type IUnknown inside the source_reader struct, so I'm unsure if using `IMFDXGIDeviceManager_Release` would be correct (mingw warns about incompatible pointer type with that). Ah, right, my bad
-- https://gitlab.winehq.org/wine/wine/-/merge_requests/2308#note_25887
Please add a refcount test for this, for example in existing test_reader_d3d9(), to demonstrate that manager refcount balanced correctly. -- https://gitlab.winehq.org/wine/wine/-/merge_requests/2308#note_25889
participants (4)
-
Adrian Thiele -
Adrian Thiele (@athiele) -
Derek Lesho (@dlesho) -
Nikolay Sivov (@nsivov)