[PATCH 4/4] amstream: Free all used resources when releasing MultiMediaStream object.

Christian Costa titan.costa at gmail.com
Mon Mar 12 13:55:04 CDT 2012


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

diff --git a/dlls/amstream/amstream.c b/dlls/amstream/amstream.c
index a731d5e..c771f77 100644
--- a/dlls/amstream/amstream.c
+++ b/dlls/amstream/amstream.c
@@ -106,11 +106,20 @@ static ULONG WINAPI IAMMultiMediaStreamImpl_Release(IAMMultiMediaStream* iface)
 {
     IAMMultiMediaStreamImpl *This = impl_from_IAMMultiMediaStream(iface);
     ULONG ref = InterlockedDecrement(&This->ref);
+    ULONG i;
 
     TRACE("(%p/%p)\n", iface, This);
 
     if (!ref)
+    {
+        for(i = 0; i < This->nbStreams; i++)
+            IMediaStream_Release(This->pStreams[i]);
+        if (This->ipin)
+            IPin_Release(This->ipin);
+        if (This->pFilterGraph)
+            IGraphBuilder_Release(This->pFilterGraph);
         HeapFree(GetProcessHeap(), 0, This);
+    }
 
     return ref;
 }




More information about the wine-patches mailing list