Christian Costa : amstream: Free all used resources when releasing MultiMediaStream object.

Alexandre Julliard julliard at winehq.org
Wed Mar 14 13:56:11 CDT 2012


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

Author: Christian Costa <titan.costa at gmail.com>
Date:   Mon Mar 12 19:55:04 2012 +0100

amstream: Free all used resources when releasing MultiMediaStream object.

---

 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-cvs mailing list