summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWerner Lemberg <wl@gnu.org>2016-07-18 06:23:36 +0200
committerWerner Lemberg <wl@gnu.org>2016-07-18 06:23:36 +0200
commita3b70d76bae970799f700d295cdf61bd954353a9 (patch)
treec585cc460384747c0ab6cae2e41789725d6f9f60
parent8c93013ca3479d1b7e702240187730cc3173f99f (diff)
downloadfreetype2-a3b70d76bae970799f700d295cdf61bd954353a9.tar.gz
[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.
-rw-r--r--ChangeLog10
-rw-r--r--src/truetype/ttinterp.c17
2 files changed, 21 insertions, 6 deletions
diff --git a/ChangeLog b/ChangeLog
index 250dbe5d8..fc1ae90a6 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 3883e67b2..eb6025f58 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 )