Enummedia memleak fix
Maarten Lankhorst
m.b.lankhorst at gmail.com
Fri May 6 15:28:47 CDT 2005
Fixed 2 small memory leaks in enummedia (my fault, not used to while
loops..)
Note that there are 2 ways to fix it:
while (--i) .. -> while (i--) ..
while (--i) .. -> while (--i >= 0) ..
I chose the second, but I don't think it matters ;)
-------------- next part --------------
? enummedia.patch
Index: enummedia.c
===================================================================
RCS file: /home/wine/wine/dlls/quartz/enummedia.c,v
retrieving revision 1.6
diff -u -p -r1.6 enummedia.c
--- enummedia.c 6 May 2005 14:34:02 -0000 1.6
+++ enummedia.c 6 May 2005 20:24:55 -0000
@@ -99,7 +99,8 @@ HRESULT IEnumMediaTypesImpl_Construct(co
pEnumMediaTypes->enumMediaDetails.pMediaTypes = CoTaskMemAlloc(sizeof(AM_MEDIA_TYPE) * pDetails->cMediaTypes);
for (i = 0; i < pDetails->cMediaTypes; i++)
if (FAILED(CopyMediaType(&pEnumMediaTypes->enumMediaDetails.pMediaTypes[i], &pDetails->pMediaTypes[i]))) {
- while (--i > 0) CoTaskMemFree(pEnumMediaTypes->enumMediaDetails.pMediaTypes[i].pbFormat);
+ while (--i >= 0)
+ CoTaskMemFree(pEnumMediaTypes->enumMediaDetails.pMediaTypes[i].pbFormat);
CoTaskMemFree(pEnumMediaTypes->enumMediaDetails.pMediaTypes);
return E_OUTOFMEMORY;
}
@@ -174,7 +175,7 @@ static HRESULT WINAPI IEnumMediaTypesImp
*ppMediaTypes = CoTaskMemAlloc(sizeof(AM_MEDIA_TYPE) * cFetched);
for (i = 0; i < cFetched; i++)
if (FAILED(CopyMediaType(&(*ppMediaTypes)[i], &This->enumMediaDetails.pMediaTypes[This->uIndex + i]))) {
- while (--i)
+ while (--i >= 0)
CoTaskMemFree((*ppMediaTypes)[i].pbFormat);
CoTaskMemFree(*ppMediaTypes);
*ppMediaTypes = NULL;
More information about the wine-patches
mailing list