[truetype] Reset the IUP-called flags for each subglyph. This fixes fall-out from 7809007a5b88b15, where the composite accents were no longer hinted. * src/truetype/ttgload.c (ttloader_init): Move the IUP-called flag initialization from here... * src/truetype/ttinterp.c (TT_Run_Context): ... to here.
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
diff --git a/src/truetype/ttgload.c b/src/truetype/ttgload.c
index 81c2b1c..0d8f271 100644
--- a/src/truetype/ttgload.c
+++ b/src/truetype/ttgload.c
@@ -2689,8 +2689,6 @@
if ( driver->interpreter_version == TT_INTERPRETER_VERSION_38 &&
exec->GS.instruct_control & 4 )
exec->ignore_x_mode = FALSE;
-
- exec->iup_called = FALSE;
#endif /* TT_SUPPORT_SUBPIXEL_HINTING_INFINALITY */
#ifdef TT_SUPPORT_SUBPIXEL_HINTING_MINIMAL
@@ -2713,9 +2711,6 @@
exec->backward_compatibility = !( exec->GS.instruct_control & 4 );
else
exec->backward_compatibility = FALSE;
-
- exec->iupx_called = FALSE;
- exec->iupy_called = FALSE;
#endif /* TT_SUPPORT_SUBPIXEL_HINTING_MINIMAL */
exec->pedantic_hinting = FT_BOOL( load_flags & FT_LOAD_PEDANTIC );
diff --git a/src/truetype/ttinterp.c b/src/truetype/ttinterp.c
index 2aa6f6b..1acec69 100644
--- a/src/truetype/ttinterp.c
+++ b/src/truetype/ttinterp.c
@@ -516,6 +516,14 @@
exec->GS.round_state = 1;
exec->GS.loop = 1;
+#ifdef TT_SUPPORT_SUBPIXEL_HINTING_INFINALITY
+ exec->iup_called = FALSE;
+#endif
+#ifdef TT_SUPPORT_SUBPIXEL_HINTING_MINIMAL
+ exec->iupx_called = FALSE;
+ exec->iupy_called = FALSE;
+#endif
+
/* some glyphs leave something on the stack. so we clean it */
/* before a new execution. */
exec->top = 0;