Christian Costa : strmbase: Use FreeMediaType instead of freeing media type by hand and forgetting pUnk release .

Alexandre Julliard julliard at winehq.org
Thu Nov 22 13:48:22 CST 2012


Module: wine
Branch: master
Commit: 44c6ca992e7094e625a589b104d0e2e61adf79e4
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=44c6ca992e7094e625a589b104d0e2e61adf79e4

Author: Christian Costa <titan.costa at gmail.com>
Date:   Fri Nov 16 15:17:33 2012 +0100

strmbase: Use FreeMediaType instead of freeing media type by hand and forgetting pUnk release.

---

 dlls/strmbase/mediatype.c |   26 ++++++++++++--------------
 1 files changed, 12 insertions(+), 14 deletions(-)

diff --git a/dlls/strmbase/mediatype.c b/dlls/strmbase/mediatype.c
index 9c76287..7f19791 100644
--- a/dlls/strmbase/mediatype.c
+++ b/dlls/strmbase/mediatype.c
@@ -122,7 +122,7 @@ HRESULT WINAPI EnumMediaTypes_Construct(BasePin *basePin, BasePin_GetMediaType e
     pEnumMediaTypes->basePin = basePin;
 
     i = 0;
-    while (enumFunc(basePin,i,&amt) == S_OK) i++;
+    while (enumFunc(basePin, i, &amt) == S_OK) i++;
 
     pEnumMediaTypes->enumMediaDetails.cMediaTypes = i;
     pEnumMediaTypes->enumMediaDetails.pMediaTypes = CoTaskMemAlloc(sizeof(AM_MEDIA_TYPE) * i);
@@ -131,10 +131,10 @@ HRESULT WINAPI EnumMediaTypes_Construct(BasePin *basePin, BasePin_GetMediaType e
         enumFunc(basePin,i,&amt);
         if (FAILED(CopyMediaType(&pEnumMediaTypes->enumMediaDetails.pMediaTypes[i], &amt)))
         {
-           while (i--)
-              CoTaskMemFree(pEnumMediaTypes->enumMediaDetails.pMediaTypes[i].pbFormat);
-           CoTaskMemFree(pEnumMediaTypes->enumMediaDetails.pMediaTypes);
-           return E_OUTOFMEMORY;
+            while (i--)
+                FreeMediaType(&pEnumMediaTypes->enumMediaDetails.pMediaTypes[i]);
+            CoTaskMemFree(pEnumMediaTypes->enumMediaDetails.pMediaTypes);
+            return E_OUTOFMEMORY;
         }
     }
     *ppEnum = &pEnumMediaTypes->IEnumMediaTypes_iface;
@@ -185,8 +185,7 @@ static ULONG WINAPI IEnumMediaTypesImpl_Release(IEnumMediaTypes * iface)
     {
         ULONG i;
         for (i = 0; i < This->enumMediaDetails.cMediaTypes; i++)
-            if (This->enumMediaDetails.pMediaTypes[i].pbFormat)
-                CoTaskMemFree(This->enumMediaDetails.pMediaTypes[i].pbFormat);
+            FreeMediaType(&This->enumMediaDetails.pMediaTypes[i]);
         CoTaskMemFree(This->enumMediaDetails.pMediaTypes);
         IPin_Release(&This->basePin->IPin_iface);
         CoTaskMemFree(This);
@@ -255,12 +254,11 @@ static HRESULT WINAPI IEnumMediaTypesImpl_Reset(IEnumMediaTypes * iface)
     TRACE("()\n");
 
     for (i = 0; i < This->enumMediaDetails.cMediaTypes; i++)
-        if (This->enumMediaDetails.pMediaTypes[i].pbFormat)
-            CoTaskMemFree(This->enumMediaDetails.pMediaTypes[i].pbFormat);
+        FreeMediaType(&This->enumMediaDetails.pMediaTypes[i]);
     CoTaskMemFree(This->enumMediaDetails.pMediaTypes);
 
     i = 0;
-    while (This->enumMediaFunction(This->basePin, i,&amt) == S_OK) i++;
+    while (This->enumMediaFunction(This->basePin, i, &amt) == S_OK) i++;
 
     This->enumMediaDetails.cMediaTypes = i;
     This->enumMediaDetails.pMediaTypes = CoTaskMemAlloc(sizeof(AM_MEDIA_TYPE) * i);
@@ -269,10 +267,10 @@ static HRESULT WINAPI IEnumMediaTypesImpl_Reset(IEnumMediaTypes * iface)
         This->enumMediaFunction(This->basePin, i,&amt);
         if (FAILED(CopyMediaType(&This->enumMediaDetails.pMediaTypes[i], &amt)))
         {
-           while (i--)
-              CoTaskMemFree(This->enumMediaDetails.pMediaTypes[i].pbFormat);
-           CoTaskMemFree(This->enumMediaDetails.pMediaTypes);
-           return E_OUTOFMEMORY;
+            while (i--)
+                FreeMediaType(&This->enumMediaDetails.pMediaTypes[i]);
+            CoTaskMemFree(This->enumMediaDetails.pMediaTypes);
+            return E_OUTOFMEMORY;
         }
     }
 




More information about the wine-cvs mailing list