memory leak fix

Huw Davies huw at codeweavers.com
Thu Jun 26 06:27:11 CDT 2008


On Thu, Jun 26, 2008 at 02:05:15AM -0700, Joris Huizer wrote:
> Untested, but this seems trivial/obvious, unless I overlooked something
> 
> 
> 
>       
> From 4026f68e4404c4b1822eefe0b3419db4f896e055 Mon Sep 17 00:00:00 2001
> From: Joris Huizer <jorishuizer at debian.(none)>
> Date: Thu, 26 Jun 2008 11:07:11 +0200
> Subject: [PATCH] memory leak fix
> 
> ---
>  dlls/gdiplus/font.c |    1 +
>  1 files changed, 1 insertions(+), 0 deletions(-)
> 
> diff --git a/dlls/gdiplus/font.c b/dlls/gdiplus/font.c
> index 0bb9fc7..9ef8edc 100644
> --- a/dlls/gdiplus/font.c
> +++ b/dlls/gdiplus/font.c
> @@ -378,6 +378,7 @@ GpStatus WINGDIPAPI GdipCreateFontFamilyFromName(GDIPCONST WCHAR *name,
>      ffamily->FamilyName = GdipAlloc(LF_FACESIZE * sizeof (WCHAR));
>      if (!ffamily->FamilyName)
>      {
> +        GdipFree(ffamily->tmw);
>          GdipFree(ffamily);
>          return OutOfMemory;
>      }

That's a good start, but there's more.  The function leaks an hfont
both on success and in this failure case.  Also there should be a
ReleaseDC in the failure case.

In addition it seems to me that the tmw element may as well be an
embedded structure rather than a structure pointer.  That'll save
having to worry about alloc'ing/free'ing it.

Huw.
-- 
Huw Davies
huw at codeweavers.com



More information about the wine-devel mailing list