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