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