[truetype] Make GETDATA work only for GX fonts. * src/truetype/ttinterp.c (opcode_name): Updated. (Ins_GETDATA): Only define for `TT_CONFIG_OPTION_GX_VAR_SUPPORT'. (TT_RunIns): Updated.
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 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73
diff --git a/ChangeLog b/ChangeLog
index 250dbe5..fc1ae90 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,4 +1,12 @@
-2016-07-16 Werner Lemberg <wl@gnu.org>
+2016-07-18 Werner Lemberg <wl@gnu.org>
+
+ [truetype] Make GETDATA work only for GX fonts.
+
+ * src/truetype/ttinterp.c (opcode_name): Updated.
+ (Ins_GETDATA): Only define for `TT_CONFIG_OPTION_GX_VAR_SUPPORT'.
+ (TT_RunIns): Updated.
+
+2016-07-17 Werner Lemberg <wl@gnu.org>
[truetype] Add support for Apple's
diff --git a/src/truetype/ttinterp.c b/src/truetype/ttinterp.c
index 3883e67..eb6025f 100644
--- a/src/truetype/ttinterp.c
+++ b/src/truetype/ttinterp.c
@@ -1068,10 +1068,11 @@
"7 INS_$90",
#ifdef TT_CONFIG_OPTION_GX_VAR_SUPPORT
"6 GETVAR",
+ "7 GETDATA",
#else
"7 INS_$91",
+ "7 INS_$92",
#endif
- "7 GETDATA",
"7 INS_$93",
"7 INS_$94",
"7 INS_$95",
@@ -7426,8 +7427,6 @@
args[i] = coords[i] >> 2; /* convert 16.16 to 2.14 format */
}
-#endif /* TT_CONFIG_OPTION_GX_VAR_SUPPORT */
-
/*************************************************************************/
/* */
@@ -7444,6 +7443,8 @@
args[0] = 17;
}
+#endif /* TT_CONFIG_OPTION_GX_VAR_SUPPORT */
+
static void
Ins_UNKNOWN( TT_ExecContext exc )
@@ -8204,11 +8205,17 @@
else
Ins_UNKNOWN( exc );
break;
-#endif
case 0x92:
- Ins_GETDATA( args );
+ /* there is at least one MS font (LaoUI.ttf version 5.01) that */
+ /* uses IDEFs for 0x91 and 0x92; for this reason we activate */
+ /* GETDATA for GX fonts only, similar to GETVARIATION */
+ if ( exc->face->blend )
+ Ins_GETDATA( args );
+ else
+ Ins_UNKNOWN( exc );
break;
+#endif
default:
if ( opcode >= 0xE0 )