[PATCH 5/5] strmbase: Avoid unnecessary use of IPin::ConnectedTo().
Zebediah Figura
z.figura12 at gmail.com
Mon Nov 18 18:51:24 CST 2019
Signed-off-by: Zebediah Figura <z.figura12 at gmail.com>
---
dlls/strmbase/outputqueue.c | 24 +++++++-----------------
1 file changed, 7 insertions(+), 17 deletions(-)
diff --git a/dlls/strmbase/outputqueue.c b/dlls/strmbase/outputqueue.c
index ee05653d7a..dbcc4b6d0d 100644
--- a/dlls/strmbase/outputqueue.c
+++ b/dlls/strmbase/outputqueue.c
@@ -177,6 +177,8 @@ VOID WINAPI OutputQueue_SendAnyway(OutputQueue *pOutputQueue)
VOID WINAPI OutputQueue_EOS(OutputQueue *pOutputQueue)
{
+ IPin *peer;
+
EnterCriticalSection(&pOutputQueue->csQueue);
if (pOutputQueue->hThread)
{
@@ -191,16 +193,8 @@ VOID WINAPI OutputQueue_EOS(OutputQueue *pOutputQueue)
qev->pSample = NULL;
list_add_tail(&pOutputQueue->SampleList, &qev->entry);
}
- else
- {
- IPin* ppin = NULL;
- IPin_ConnectedTo(&pOutputQueue->pInputPin->pin.IPin_iface, &ppin);
- if (ppin)
- {
- IPin_EndOfStream(ppin);
- IPin_Release(ppin);
- }
- }
+ else if ((peer = pOutputQueue->pInputPin->pin.peer))
+ IPin_EndOfStream(peer);
LeaveCriticalSection(&pOutputQueue->csQueue);
/* Covers sending the Event to the worker Thread */
OutputQueue_SendAnyway(pOutputQueue);
@@ -259,13 +253,9 @@ DWORD WINAPI OutputQueueImpl_ThreadProc(OutputQueue *pOutputQueue)
QueuedEvent *qev = LIST_ENTRY(cursor, QueuedEvent, entry);
if (qev->type == EOS_PACKET)
{
- IPin* ppin = NULL;
- IPin_ConnectedTo(&pOutputQueue->pInputPin->pin.IPin_iface, &ppin);
- if (ppin)
- {
- IPin_EndOfStream(ppin);
- IPin_Release(ppin);
- }
+ IPin *peer;
+ if ((peer = pOutputQueue->pInputPin->pin.peer))
+ IPin_EndOfStream(peer);
}
else if (qev->type == SAMPLE_PACKET)
break;
--
2.24.0
More information about the wine-devel
mailing list