[PATCH v6 0/2] MR2958: mf: Various refcount leak fixes for session.
-- v6: mf: Don't leak sink in session_get_renderer_node_service(). mf: Clear queued topologies on session shutdown. https://gitlab.winehq.org/wine/wine/-/merge_requests/2958
From: Bernhard Kölbl <besentv(a)gmail.com> Programs might expect objects inside the queued toplogy to be freed, before they eventually call release on the session itself. This fixes reference leaks to stored objects in queued topology nodes, even when IMFMediaSession_Shutdown() was called. Signed-off-by: Bernhard Kölbl <besentv(a)gmail.com> --- dlls/mf/session.c | 1 + 1 file changed, 1 insertion(+) diff --git a/dlls/mf/session.c b/dlls/mf/session.c index 8b29c8487fb..3641cc74b83 100644 --- a/dlls/mf/session.c +++ b/dlls/mf/session.c @@ -2225,6 +2225,7 @@ static HRESULT WINAPI mfsession_Shutdown(IMFMediaSession *iface) IMFPresentationClock_Release(session->clock); session->clock = NULL; session_clear_presentation(session); + session_clear_queued_topologies(session); session_submit_simple_command(session, SESSION_CMD_SHUTDOWN); } LeaveCriticalSection(&session->cs); -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/2958
From: Bernhard Kölbl <besentv(a)gmail.com> Signed-off-by: Bernhard Kölbl <besentv(a)gmail.com> --- dlls/mf/session.c | 1 + 1 file changed, 1 insertion(+) diff --git a/dlls/mf/session.c b/dlls/mf/session.c index 3641cc74b83..555a71dcdf7 100644 --- a/dlls/mf/session.c +++ b/dlls/mf/session.c @@ -2397,6 +2397,7 @@ static HRESULT session_get_renderer_node_service(struct media_session *session, if (FAILED(hr = MFGetService((IUnknown *)sink, service, riid, obj))) WARN("Failed to get service from renderer node, %#lx.\n", hr); } + IMFMediaSink_Release(sink); } IMFStreamSink_Release(stream_sink); } -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/2958
v3: Only pull commit 2 and 3, and commit desc rewording. -- https://gitlab.winehq.org/wine/wine/-/merge_requests/2958#note_35741
This merge request was approved by Nikolay Sivov. -- https://gitlab.winehq.org/wine/wine/-/merge_requests/2958
On Wed Jun 14 16:06:06 2023 +0000, Nikolay Sivov wrote:
How IActivate shutdown works, I'll have to try something myself. I opened !3067, so we can continue discussing this there.
-- https://gitlab.winehq.org/wine/wine/-/merge_requests/2958#note_35753
participants (2)
-
Bernhard Kölbl -
Nikolay Sivov (@nsivov)