Module: wine Branch: master Commit: 7e575d681d8586b50c218bc6dd25c5260221234d URL: https://gitlab.winehq.org/wine/wine/-/commit/7e575d681d8586b50c218bc6dd25c52... Author: Ziqing Hui <zhui(a)codeweavers.com> Date: Fri Nov 24 09:13:01 2023 +0800 winegstreamer: Avoid media sink command leaking. --- dlls/winegstreamer/media_sink.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/dlls/winegstreamer/media_sink.c b/dlls/winegstreamer/media_sink.c index 6996d689e83..c24e9b9a13f 100644 --- a/dlls/winegstreamer/media_sink.c +++ b/dlls/winegstreamer/media_sink.c @@ -344,8 +344,9 @@ static HRESULT WINAPI stream_sink_ProcessSample(IMFStreamSink *iface, IMFSample IMFSample_AddRef((command->u.process.sample = sample)); command->u.process.stream_id = stream_sink->id; - if (FAILED(hr = MFPutWorkItem(MFASYNC_CALLBACK_QUEUE_STANDARD, &media_sink->async_callback, &command->IUnknown_iface))) - IUnknown_Release(&command->IUnknown_iface); + hr = MFPutWorkItem(MFASYNC_CALLBACK_QUEUE_STANDARD, + &media_sink->async_callback, &command->IUnknown_iface); + IUnknown_Release(&command->IUnknown_iface); LeaveCriticalSection(&media_sink->cs); @@ -525,7 +526,11 @@ static HRESULT media_sink_queue_command(struct media_sink *media_sink, enum asyn if (FAILED(hr = async_command_create(op, &command))) return hr; - return MFPutWorkItem(MFASYNC_CALLBACK_QUEUE_STANDARD, &media_sink->async_callback, &command->IUnknown_iface); + hr = MFPutWorkItem(MFASYNC_CALLBACK_QUEUE_STANDARD, + &media_sink->async_callback, &command->IUnknown_iface); + IUnknown_Release(&command->IUnknown_iface); + + return hr; } static HRESULT media_sink_queue_stream_event(struct media_sink *media_sink, MediaEventType type)