[truetype] Revert the reordering of trickyness checking. Trickyness check by the family name is faster than that by the checksum.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51
diff --git a/ChangeLog b/ChangeLog
index dfbeb6c..23560fd 100644
--- 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 <mpsuzuki@hiroshima-u.ac.jp>
diff --git a/src/truetype/ttobjs.c b/src/truetype/ttobjs.c
index 82ec0ec..349547a 100644
--- a/src/truetype/ttobjs.c
+++ b/src/truetype/ttobjs.c
@@ -332,17 +332,17 @@
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;
}