Kaydet (Commit) 884229ed authored tarafından Caolán McNamara's avatar Caolán McNamara

server font dtor always calls ReleaseFaceFT

therefore we must always call GetFaceFT in the ctor
and not return early *before* calling GetFaceFT which
could happen in case of inane font size requests, i.e.

if( (mnWidth < 0) || (mfStretch > +64.0) || (mfStretch < -64.0) )

valgrind+bff

Change-Id: If22f8f7ff6aaed3ffa9eec68630da8601dfd5cae
üst e9778073
......@@ -488,6 +488,10 @@ ServerFont::ServerFont( const FontSelectPattern& rFSD, FtFontInfo* pFI )
// it becomes reponsible for the ServerFont instantiation
((ImplServerFontEntry*)rFSD.mpFontEntry)->SetServerFont( this );
maFaceFT = pFI->GetFaceFT();
if( !maFaceFT )
return;
if( rFSD.mnOrientation != 0 )
{
const double dRad = rFSD.mnOrientation * ( F_2PI / 3600.0 );
......@@ -504,10 +508,6 @@ ServerFont::ServerFont( const FontSelectPattern& rFSD, FtFontInfo* pFI )
if( (mnWidth < 0) || (mfStretch > +64.0) || (mfStretch < -64.0) )
return;
maFaceFT = pFI->GetFaceFT();
if( !maFaceFT )
return;
FT_New_Size( maFaceFT, &maSizeFT );
FT_Activate_Size( maSizeFT );
FT_Error rc = FT_Set_Pixel_Sizes( maFaceFT, mnWidth, rFSD.mnHeight );
......@@ -623,8 +623,7 @@ const OString& ServerFont::GetFontFileName() const
ServerFont::~ServerFont()
{
if( mpLayoutEngine )
delete mpLayoutEngine;
delete mpLayoutEngine;
if( maSizeFT )
FT_Done_Size( maSizeFT );
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment