gdiplus: Store the family name directly in the GpFontFamily structure.
This commit is contained in:
parent
d17d566412
commit
ed985acd9f
|
@ -98,7 +98,7 @@ GpStatus WINGDIPAPI GdipCreateFont(GDIPCONST GpFontFamily *fontFamily,
|
||||||
const NEWTEXTMETRICW* tmw;
|
const NEWTEXTMETRICW* tmw;
|
||||||
GpStatus stat;
|
GpStatus stat;
|
||||||
|
|
||||||
if (!fontFamily || !fontFamily->FamilyName || !font)
|
if (!fontFamily || !font)
|
||||||
return InvalidParameter;
|
return InvalidParameter;
|
||||||
|
|
||||||
TRACE("%p (%s), %f, %d, %d, %p\n", fontFamily,
|
TRACE("%p (%s), %f, %d, %d, %p\n", fontFamily,
|
||||||
|
@ -118,7 +118,7 @@ GpStatus WINGDIPAPI GdipCreateFont(GDIPCONST GpFontFamily *fontFamily,
|
||||||
lfw->lfStrikeOut = tmw->tmStruckOut;
|
lfw->lfStrikeOut = tmw->tmStruckOut;
|
||||||
lfw->lfCharSet = tmw->tmCharSet;
|
lfw->lfCharSet = tmw->tmCharSet;
|
||||||
lfw->lfPitchAndFamily = tmw->tmPitchAndFamily;
|
lfw->lfPitchAndFamily = tmw->tmPitchAndFamily;
|
||||||
lstrcpynW((lfw->lfFaceName), facename, sizeof(WCHAR) * LF_FACESIZE);
|
lstrcpynW(lfw->lfFaceName, facename, LF_FACESIZE);
|
||||||
|
|
||||||
switch (unit)
|
switch (unit)
|
||||||
{
|
{
|
||||||
|
@ -405,15 +405,7 @@ GpStatus WINGDIPAPI GdipCreateFontFamilyFromName(GDIPCONST WCHAR *name,
|
||||||
if (!ffamily) return OutOfMemory;
|
if (!ffamily) return OutOfMemory;
|
||||||
|
|
||||||
ffamily->tmw = ntm;
|
ffamily->tmw = ntm;
|
||||||
|
lstrcpynW(ffamily->FamilyName, name, LF_FACESIZE);
|
||||||
ffamily->FamilyName = GdipAlloc(LF_FACESIZE * sizeof (WCHAR));
|
|
||||||
if (!ffamily->FamilyName)
|
|
||||||
{
|
|
||||||
GdipFree(ffamily);
|
|
||||||
return OutOfMemory;
|
|
||||||
}
|
|
||||||
|
|
||||||
lstrcpynW(ffamily->FamilyName, name, sizeof(WCHAR) * LF_FACESIZE);
|
|
||||||
|
|
||||||
*FontFamily = ffamily;
|
*FontFamily = ffamily;
|
||||||
|
|
||||||
|
@ -442,17 +434,8 @@ GpStatus WINGDIPAPI GdipCloneFontFamily(GpFontFamily* FontFamily, GpFontFamily**
|
||||||
*clonedFontFamily = GdipAlloc(sizeof(GpFontFamily));
|
*clonedFontFamily = GdipAlloc(sizeof(GpFontFamily));
|
||||||
if (!*clonedFontFamily) return OutOfMemory;
|
if (!*clonedFontFamily) return OutOfMemory;
|
||||||
|
|
||||||
**clonedFontFamily = *FontFamily;
|
(*clonedFontFamily)->tmw = FontFamily->tmw;
|
||||||
|
lstrcpyW((*clonedFontFamily)->FamilyName, FontFamily->FamilyName);
|
||||||
(*clonedFontFamily)->FamilyName = GdipAlloc(sizeof(WCHAR) * LF_FACESIZE);
|
|
||||||
if (!(*clonedFontFamily)->FamilyName)
|
|
||||||
{
|
|
||||||
GdipFree (clonedFontFamily);
|
|
||||||
return OutOfMemory;
|
|
||||||
}
|
|
||||||
|
|
||||||
lstrcpynW((*clonedFontFamily)->FamilyName, FontFamily->FamilyName,
|
|
||||||
LF_FACESIZE);
|
|
||||||
|
|
||||||
return Ok;
|
return Ok;
|
||||||
}
|
}
|
||||||
|
@ -510,7 +493,6 @@ GpStatus WINGDIPAPI GdipDeleteFontFamily(GpFontFamily *FontFamily)
|
||||||
return InvalidParameter;
|
return InvalidParameter;
|
||||||
TRACE("Deleting %p (%s)\n", FontFamily, debugstr_w(FontFamily->FamilyName));
|
TRACE("Deleting %p (%s)\n", FontFamily, debugstr_w(FontFamily->FamilyName));
|
||||||
|
|
||||||
GdipFree (FontFamily->FamilyName);
|
|
||||||
GdipFree (FontFamily);
|
GdipFree (FontFamily);
|
||||||
|
|
||||||
return Ok;
|
return Ok;
|
||||||
|
|
|
@ -193,7 +193,7 @@ struct GpFontCollection{
|
||||||
|
|
||||||
struct GpFontFamily{
|
struct GpFontFamily{
|
||||||
NEWTEXTMETRICW tmw;
|
NEWTEXTMETRICW tmw;
|
||||||
WCHAR* FamilyName;
|
WCHAR FamilyName[LF_FACESIZE];
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
Loading…
Reference in New Issue