Sven Baars : strmbase: Fix some memory leaks (Valgrind).
Alexandre Julliard
julliard at winehq.org
Tue Jan 29 15:18:17 CST 2019
Module: wine
Branch: master
Commit: c7f51d85ecf0ee63a3c4a818c3c1c9727562b0a7
URL: https://source.winehq.org/git/wine.git/?a=commit;h=c7f51d85ecf0ee63a3c4a818c3c1c9727562b0a7
Author: Sven Baars <sven.wine at gmail.com>
Date: Tue Jan 29 20:28:58 2019 +0100
strmbase: Fix some memory leaks (Valgrind).
Signed-off-by: Sven Baars <sven.wine at gmail.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>
---
dlls/strmbase/mediatype.c | 9 ++++++---
dlls/strmbase/renderer.c | 1 +
2 files changed, 7 insertions(+), 3 deletions(-)
diff --git a/dlls/strmbase/mediatype.c b/dlls/strmbase/mediatype.c
index 91c0ddc..1ad4d3b 100644
--- a/dlls/strmbase/mediatype.c
+++ b/dlls/strmbase/mediatype.c
@@ -264,14 +264,17 @@ static HRESULT WINAPI IEnumMediaTypesImpl_Reset(IEnumMediaTypes * iface)
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)
+ {
+ FreeMediaType(&amt);
+ i++;
+ }
This->enumMediaDetails.cMediaTypes = i;
This->enumMediaDetails.pMediaTypes = CoTaskMemAlloc(sizeof(AM_MEDIA_TYPE) * i);
for (i = 0; i < This->enumMediaDetails.cMediaTypes; i++)
{
- This->enumMediaFunction(This->basePin, i,&amt);
- if (FAILED(CopyMediaType(&This->enumMediaDetails.pMediaTypes[i], &amt)))
+ if (FAILED(This->enumMediaFunction(This->basePin, i, &This->enumMediaDetails.pMediaTypes[i])))
{
while (i--)
FreeMediaType(&This->enumMediaDetails.pMediaTypes[i]);
diff --git a/dlls/strmbase/renderer.c b/dlls/strmbase/renderer.c
index c06661c..3d5e4b5 100644
--- a/dlls/strmbase/renderer.c
+++ b/dlls/strmbase/renderer.c
@@ -346,6 +346,7 @@ HRESULT WINAPI BaseRendererImpl_Receive(BaseRenderer *This, IMediaSample * pSamp
{
return VFW_E_TYPE_NOT_ACCEPTED;
}
+ DeleteMediaType(pmt);
}
This->pMediaSample = pSample;
More information about the wine-cvs
mailing list