quartz: Fix some memory leaks in the file source.

This commit is contained in:
Maarten Lankhorst 2008-04-04 14:32:09 -07:00 committed by Alexandre Julliard
parent d56c50c85b
commit 45bd38ece3
1 changed files with 9 additions and 0 deletions

View File

@ -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);
}