mfplat: Read queue subscriber within the critical section.
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com> Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com> Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
parent
a8d4ea1d0a
commit
4904d90870
|
@ -7109,7 +7109,7 @@ static void queue_notify_subscriber(struct event_queue *queue)
|
||||||
static HRESULT WINAPI eventqueue_BeginGetEvent(IMFMediaEventQueue *iface, IMFAsyncCallback *callback, IUnknown *state)
|
static HRESULT WINAPI eventqueue_BeginGetEvent(IMFMediaEventQueue *iface, IMFAsyncCallback *callback, IUnknown *state)
|
||||||
{
|
{
|
||||||
struct event_queue *queue = impl_from_IMFMediaEventQueue(iface);
|
struct event_queue *queue = impl_from_IMFMediaEventQueue(iface);
|
||||||
MFASYNCRESULT *result_data = (MFASYNCRESULT *)queue->subscriber;
|
MFASYNCRESULT *result_data;
|
||||||
HRESULT hr;
|
HRESULT hr;
|
||||||
|
|
||||||
TRACE("%p, %p, %p.\n", iface, callback, state);
|
TRACE("%p, %p, %p.\n", iface, callback, state);
|
||||||
|
@ -7121,7 +7121,7 @@ static HRESULT WINAPI eventqueue_BeginGetEvent(IMFMediaEventQueue *iface, IMFAsy
|
||||||
|
|
||||||
if (queue->is_shut_down)
|
if (queue->is_shut_down)
|
||||||
hr = MF_E_SHUTDOWN;
|
hr = MF_E_SHUTDOWN;
|
||||||
else if (result_data)
|
else if ((result_data = (MFASYNCRESULT *)queue->subscriber))
|
||||||
{
|
{
|
||||||
if (result_data->pCallback == callback)
|
if (result_data->pCallback == callback)
|
||||||
hr = IRtwqAsyncResult_GetStateNoAddRef(queue->subscriber) == state ?
|
hr = IRtwqAsyncResult_GetStateNoAddRef(queue->subscriber) == state ?
|
||||||
|
|
Loading…
Reference in New Issue