Maarten Lankhorst : quartz: Destroy the filtergraph better in releasing.

Alexandre Julliard julliard at winehq.org
Sat Mar 15 05:53:47 CDT 2008


Module: wine
Branch: master
Commit: d47bdbfbf166884a1fd93fd97a628dd418a18e97
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=d47bdbfbf166884a1fd93fd97a628dd418a18e97

Author: Maarten Lankhorst <m.b.lankhorst at gmail.com>
Date:   Thu Mar 13 21:47:14 2008 -0700

quartz: Destroy the filtergraph better in releasing.

RemoveFilter is better at removing a filter from a filtergraph then
some method there.

---

 dlls/quartz/filtergraph.c |   10 ++++------
 1 files changed, 4 insertions(+), 6 deletions(-)

diff --git a/dlls/quartz/filtergraph.c b/dlls/quartz/filtergraph.c
index 747f88d..7f92562 100644
--- a/dlls/quartz/filtergraph.c
+++ b/dlls/quartz/filtergraph.c
@@ -282,15 +282,13 @@ static ULONG WINAPI FilterGraphInner_Release(IUnknown * iface) {
     if (ref == 0) {
         int i;
 
+        IMediaControl_Stop((IMediaControl*)&(This->IMediaControl_vtbl));
         if (This->refClock)
             IReferenceClock_Release(This->refClock);
 
-        for (i = 0; i < This->nFilters; i++)
-        {
-            IBaseFilter_SetSyncSource(This->ppFiltersInGraph[i], NULL);
-            IBaseFilter_Release(This->ppFiltersInGraph[i]);
-            CoTaskMemFree(This->pFilterNames[i]);
-        }
+        while (This->nFilters)
+            IFilterGraph2_RemoveFilter((IFilterGraph2*)This, This->ppFiltersInGraph[0]);
+
         for (i = 0; i < This->nItfCacheEntries; i++)
         {
             if (This->ItfCacheEntries[i].iface)




More information about the wine-cvs mailing list