From a3b70d76bae970799f700d295cdf61bd954353a9 Mon Sep 17 00:00:00 2001 From: Werner Lemberg Date: Mon, 18 Jul 2016 06:23:36 +0200 Subject: [PATCH] [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. --- ChangeLog | 10 +++++++++- src/truetype/ttinterp.c | 17 ++++++++++++----- 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 +2016-07-18 Werner Lemberg + + [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 [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 )