[gs-commits] ghostpdl branch, master, updated. ghostpdl-9.02-1032-ga107514

Chris Liddell chrisl at ghostscript.com
Wed Mar 28 16:09:19 UTC 2012


The ghostpdl branch, master has been updated
       via  a1075141f25f7bf38bf372f9ccc65dfd9c0c8baa (commit)
      from  5b50a46f4ed3e54fec6727a1ad52258e5d32b0a9 (commit)

----------------------------------------------------------------------
commit a1075141f25f7bf38bf372f9ccc65dfd9c0c8baa
Author: Chris Liddell <chris.liddell at artifex.com>
Date:   Wed Mar 28 17:03:25 2012 +0100

    Bug 692950: further revise falling back to unhinted rendering.
    
    In the FAPI/FT interface, we caught some errors from Freetype to do with the
    byte code hinting in TrueType fonts - when they occur we retry the glyph
    rendering with hinting disabled.
    
    This commit expands that to *any* error from the byte code interpreter will
    now cause us to retry unhinted.
    
    (the core problem in this case seems to be scale depending operations in the
    font program, which is supposed not to be permitted).
    
    No cluster differences.

diff --git a/gs/psi/fapi_ft.c b/gs/psi/fapi_ft.c
index 2f24eee..c6f1168 100644
--- a/gs/psi/fapi_ft.c
+++ b/gs/psi/fapi_ft.c
@@ -562,10 +562,11 @@ load_glyph(FAPI_server *a_server, FAPI_font *a_fapi_font, const FAPI_char_ref *a
         }
     }
 
-    if (ft_error == FT_Err_Too_Many_Hints || ft_error == FT_Err_Invalid_Argument
-        || ft_error == FT_Err_Too_Many_Function_Defs || ft_error == FT_Err_Invalid_Glyph_Index
-        || ft_error == FT_Err_Invalid_Reference) {
+    if (ft_error == FT_Err_Invalid_Argument || ft_error == FT_Err_Invalid_Glyph_Index
+        || (ft_error >= FT_Err_Invalid_Opcode && ft_error <= FT_Err_Too_Many_Instruction_Defs)) {
+
         a_fapi_font->char_data = saved_char_data;
+
         /* We want to prevent hinting, even for a "tricky" font - it shouldn't matter for the notdef */
         fflags = ft_face->face_flags;
         ft_face->face_flags &= ~FT_FACE_FLAG_TRICKY;


Summary of changes:
 gs/psi/fapi_ft.c |    7 ++++---
 1 files changed, 4 insertions(+), 3 deletions(-)



More information about the gs-commits mailing list