[Libreoffice-commits] core.git: Branch 'libreoffice-4-0' - vcl/source

Herbert Dürr hdu at apache.org
Fri Oct 4 12:33:25 PDT 2013


 vcl/source/fontsubset/sft.cxx |    7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

New commits:
commit d4b7546df3f9650b1773b9ad0cdd93aa01ae1097
Author: Herbert Dürr <hdu at apache.org>
Date:   Fri Oct 4 15:14:22 2013 +0000

    Resolves: #i123417# handle subsetting of empty ttf compound glyphs gracefully
    
    (cherry picked from commit d519b07ecd4b67cedf1fe3e1860ef33a48a01ae4)
    Signed-off-by: Caolán McNamara <caolanm at redhat.com>
    
    Conflicts:
    	vcl/source/fontsubset/sft.cxx
    
    Change-Id: I51d4a97f1f01be49cb5ab058019cd153e23437bd
    (cherry picked from commit 6489f97fc428446c53c17f885963776cdcc21490)
    Signed-off-by: Caolán McNamara <caolanm at redhat.com>

diff --git a/vcl/source/fontsubset/sft.cxx b/vcl/source/fontsubset/sft.cxx
index e110c12..a8e8e00 100644
--- a/vcl/source/fontsubset/sft.cxx
+++ b/vcl/source/fontsubset/sft.cxx
@@ -745,7 +745,10 @@ static int GetCompoundTTOutline(TrueTypeFont *ttf, sal_uInt32 glyphID, ControlPo
 
     } while (flags & MORE_COMPONENTS);
 
-
+    // #i123417# some fonts like IFAOGrec have no outline points in some compound glyphs
+    // so this unlikely but possible scenario should be handled gracefully
+    if( myPoints.empty() )
+        return 0;
 
     np = myPoints.size();
 
@@ -2620,7 +2623,7 @@ GlyphData *GetTTRawGlyphData(TrueTypeFont *ttf, sal_uInt32 glyphID)
     /* now calculate npoints and ncontours */
     ControlPoint *cp;
     n = GetTTGlyphPoints(ttf, glyphID, &cp);
-    if (n != -1)
+    if (n > 0)
     {
         int m = 0;
         for (int i = 0; i < n; i++)


More information about the Libreoffice-commits mailing list