Module: wine Branch: master Commit: abc6d186ead35d2cad28c5a2a69183c6ed4f3a5f URL: http://source.winehq.org/git/wine.git/?a=commit;h=abc6d186ead35d2cad28c5a2a6...
Author: Christian Costa titan.costa@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; }