Module: wine Branch: master Commit: d47bdbfbf166884a1fd93fd97a628dd418a18e97 URL: http://source.winehq.org/git/wine.git/?a=commit;h=d47bdbfbf166884a1fd93fd97a...
Author: Maarten Lankhorst m.b.lankhorst@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)