shithub: freetype+ttf2subf

Download patch

ref: 86b7b2f614873386a3bd56be77c8ba37a69a2a02
parent: abc47aa1362713192cf8f6747b8de25a3f54e513
author: suzuki toshiya <[email protected]>
date: Mon Apr 25 23:46:12 EDT 2011

[truetype] Revert the reordering of trickyness checking.

Trickyness check by the family name is faster than that by
the checksum.

git/fs: mount .git/fs: mount/attach disallowed
--- a/ChangeLog
+++ b/ChangeLog
@@ -2,13 +2,14 @@
 
 	[truetype] Always check the checksum to identify tricky fonts.
 
-	Some PDF generators mangle the family name badly, prioritize
-	the check by the sfnt table checksums than the check by the
-	family name.  For sample PDF, see
+	Because some PDF generators mangle the family name badly,
+	the trickyness check by the checksum should be invoked always.
+	For sample PDF, see
 	http://lists.gnu.org/archive/html/freetype-devel/2011-04/msg00073.html
 
-	* src/truetype/ttobjs.c (tt_check_trickyness): Exchange the order
-	of tt_check_trickyness_family() and tt_check_trickyness_sfnt_ids().
+	* src/truetype/ttobjs.c (tt_check_trickyness): Even when
+	tt_check_trickyness_family() finds no trickyness,
+	tt_check_trickyness_sfnt_ids() is invoked.
 
 2011-04-22  suzuki toshiya  <[email protected]>
 
--- a/src/truetype/ttobjs.c
+++ b/src/truetype/ttobjs.c
@@ -332,15 +332,15 @@
     if ( !face )
       return FALSE;
 
+    /* For first, check the face name for quick check. */
+    if ( face->family_name                               &&
+         tt_check_trickyness_family( face->family_name ) )
+      return TRUE;
+
     /* Type42 fonts may lack `name' tables, we thus try to identify */
     /* tricky fonts by checking the checksums of Type42-persistent  */
     /* sfnt tables (`cvt', `fpgm', and `prep').                     */
     if ( tt_check_trickyness_sfnt_ids( (TT_Face)face ) )
-      return TRUE;
-
-    /* Secondary, check the face name. */
-    if ( face->family_name                               &&
-         tt_check_trickyness_family( face->family_name ) )
       return TRUE;
 
     return FALSE;