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