Maarten Lankhorst : quartz: Fix some memory leaks in the file source.
Alexandre Julliard
julliard at winehq.org
Mon Apr 7 06:50:32 CDT 2008
Module: wine
Branch: master
Commit: 45bd38ece3ce8dda36ae1c3e8d5cac942b6013ef
URL: http://source.winehq.org/git/wine.git/?a=commit;h=45bd38ece3ce8dda36ae1c3e8d5cac942b6013ef
Author: Maarten Lankhorst <m.b.lankhorst at gmail.com>
Date: Fri Apr 4 14:32:09 2008 -0700
quartz: Fix some memory leaks in the file source.
---
dlls/quartz/filesource.c | 9 +++++++++
1 files changed, 9 insertions(+), 0 deletions(-)
diff --git a/dlls/quartz/filesource.c b/dlls/quartz/filesource.c
index 288c564..fd977f9 100644
--- a/dlls/quartz/filesource.c
+++ b/dlls/quartz/filesource.c
@@ -432,6 +432,8 @@ static ULONG WINAPI AsyncReader_Release(IBaseFilter * iface)
This->csFilter.DebugInfo->Spare[0] = 0;
DeleteCriticalSection(&This->csFilter);
This->lpVtbl = NULL;
+ CoTaskMemFree(This->pszFileName);
+ FreeMediaType(This->pmt);
CoTaskMemFree(This);
return 0;
}
@@ -639,8 +641,13 @@ static HRESULT WINAPI FileSource_Load(IFileSourceFilter * iface, LPCOLESTR pszFi
/* store file name & media type */
if (SUCCEEDED(hr))
{
+ CoTaskMemFree(This->pszFileName);
+ if (This->pmt)
+ FreeMediaType(This->pmt);
+
This->pszFileName = CoTaskMemAlloc((strlenW(pszFileName) + 1) * sizeof(WCHAR));
strcpyW(This->pszFileName, pszFileName);
+
This->pmt = CoTaskMemAlloc(sizeof(AM_MEDIA_TYPE));
if (!pmt)
{
@@ -674,7 +681,9 @@ static HRESULT WINAPI FileSource_Load(IFileSourceFilter * iface, LPCOLESTR pszFi
}
CoTaskMemFree(This->pszFileName);
+ FreeMediaType(This->pmt);
This->pszFileName = NULL;
+ This->pmt = NULL;
CloseHandle(hFile);
}
More information about the wine-cvs
mailing list