quartz: Fully disconnect the AsyncReader when released

Chris Robinson chris.kcat at gmail.com
Mon Mar 19 15:48:20 CDT 2007


-------------- next part --------------
From f11c46e2cae0b5e1b77eb37fb70305657eee1711 Mon Sep 17 00:00:00 2001
From: Chris Robinson <chris.kcat at gmail.com>
Date: Mon, 19 Mar 2007 13:28:32 -0700
Subject: [PATCH] quartz: Fully disconnect the AsyncReader when released

---
 dlls/quartz/filesource.c |    9 +++++++++
 1 files changed, 9 insertions(+), 0 deletions(-)

diff --git a/dlls/quartz/filesource.c b/dlls/quartz/filesource.c
index 22209f5..6e5db5e 100644
--- a/dlls/quartz/filesource.c
+++ b/dlls/quartz/filesource.c
@@ -378,7 +378,16 @@ static ULONG WINAPI AsyncReader_Release(IBaseFilter * iface)
     if (!refCount)
     {
         if (This->pOutputPin)
+        {
+            IPin *pConnectedTo;
+            if(SUCCEEDED(IPin_ConnectedTo(This->pOutputPin, &pConnectedTo)))
+            {
+                IPin_Disconnect(pConnectedTo);
+                IPin_Release(pConnectedTo);
+            }
+            IPin_Disconnect(This->pOutputPin);
             IPin_Release(This->pOutputPin);
+        }
         This->csFilter.DebugInfo->Spare[0] = 0;
         DeleteCriticalSection(&This->csFilter);
         This->lpVtbl = NULL;
-- 
1.4.4.4



More information about the wine-patches mailing list