diff --git a/dlls/gdiplus/font.c b/dlls/gdiplus/font.c index 217481a7157..63e314d7ad0 100644 --- a/dlls/gdiplus/font.c +++ b/dlls/gdiplus/font.c @@ -98,7 +98,7 @@ GpStatus WINGDIPAPI GdipCreateFont(GDIPCONST GpFontFamily *fontFamily, const NEWTEXTMETRICW* tmw; GpStatus stat; - if (!fontFamily || !fontFamily->FamilyName || !font) + if (!fontFamily || !font) return InvalidParameter; TRACE("%p (%s), %f, %d, %d, %p\n", fontFamily, @@ -118,7 +118,7 @@ GpStatus WINGDIPAPI GdipCreateFont(GDIPCONST GpFontFamily *fontFamily, lfw->lfStrikeOut = tmw->tmStruckOut; lfw->lfCharSet = tmw->tmCharSet; lfw->lfPitchAndFamily = tmw->tmPitchAndFamily; - lstrcpynW((lfw->lfFaceName), facename, sizeof(WCHAR) * LF_FACESIZE); + lstrcpynW(lfw->lfFaceName, facename, LF_FACESIZE); switch (unit) { @@ -405,15 +405,7 @@ GpStatus WINGDIPAPI GdipCreateFontFamilyFromName(GDIPCONST WCHAR *name, if (!ffamily) return OutOfMemory; ffamily->tmw = ntm; - - ffamily->FamilyName = GdipAlloc(LF_FACESIZE * sizeof (WCHAR)); - if (!ffamily->FamilyName) - { - GdipFree(ffamily); - return OutOfMemory; - } - - lstrcpynW(ffamily->FamilyName, name, sizeof(WCHAR) * LF_FACESIZE); + lstrcpynW(ffamily->FamilyName, name, LF_FACESIZE); *FontFamily = ffamily; @@ -442,17 +434,8 @@ GpStatus WINGDIPAPI GdipCloneFontFamily(GpFontFamily* FontFamily, GpFontFamily** *clonedFontFamily = GdipAlloc(sizeof(GpFontFamily)); if (!*clonedFontFamily) return OutOfMemory; - **clonedFontFamily = *FontFamily; - - (*clonedFontFamily)->FamilyName = GdipAlloc(sizeof(WCHAR) * LF_FACESIZE); - if (!(*clonedFontFamily)->FamilyName) - { - GdipFree (clonedFontFamily); - return OutOfMemory; - } - - lstrcpynW((*clonedFontFamily)->FamilyName, FontFamily->FamilyName, - LF_FACESIZE); + (*clonedFontFamily)->tmw = FontFamily->tmw; + lstrcpyW((*clonedFontFamily)->FamilyName, FontFamily->FamilyName); return Ok; } @@ -510,7 +493,6 @@ GpStatus WINGDIPAPI GdipDeleteFontFamily(GpFontFamily *FontFamily) return InvalidParameter; TRACE("Deleting %p (%s)\n", FontFamily, debugstr_w(FontFamily->FamilyName)); - GdipFree (FontFamily->FamilyName); GdipFree (FontFamily); return Ok; diff --git a/dlls/gdiplus/gdiplus_private.h b/dlls/gdiplus/gdiplus_private.h index 2b953bf309b..e7ca8742174 100644 --- a/dlls/gdiplus/gdiplus_private.h +++ b/dlls/gdiplus/gdiplus_private.h @@ -193,7 +193,7 @@ struct GpFontCollection{ struct GpFontFamily{ NEWTEXTMETRICW tmw; - WCHAR* FamilyName; + WCHAR FamilyName[LF_FACESIZE]; }; #endif