[Libreoffice-commits] core.git: Branch 'libreoffice-4-3' - vcl/generic
Caolán McNamara
caolanm at redhat.com
Wed Oct 1 00:22:53 PDT 2014
vcl/generic/glyphs/gcach_ftyp.cxx | 11 +++++------
1 file changed, 5 insertions(+), 6 deletions(-)
New commits:
commit 5aceca0f5bf25d535c33a726d698777322b378d7
Author: Caolán McNamara <caolanm at redhat.com>
Date: Thu Sep 11 14:16:05 2014 +0100
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
(cherry picked from commit 884229ed3ee2f84eb052c866e22bdb242a385788)
Reviewed-on: https://gerrit.libreoffice.org/11400
Reviewed-by: Miklos Vajna <vmiklos at collabora.co.uk>
Tested-by: Miklos Vajna <vmiklos at collabora.co.uk>
diff --git a/vcl/generic/glyphs/gcach_ftyp.cxx b/vcl/generic/glyphs/gcach_ftyp.cxx
index 47adb09..3978f02 100644
--- a/vcl/generic/glyphs/gcach_ftyp.cxx
+++ b/vcl/generic/glyphs/gcach_ftyp.cxx
@@ -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 );
@@ -627,8 +627,7 @@ bool ServerFont::TestFont() const
ServerFont::~ServerFont()
{
- if( mpLayoutEngine )
- delete mpLayoutEngine;
+ delete mpLayoutEngine;
if( maSizeFT )
FT_Done_Size( maSizeFT );
More information about the Libreoffice-commits
mailing list