diff options
author | Alexei Podtelezhnikov <apodtele@gmail.com> | 2022-04-25 08:03:08 -0400 |
---|---|---|
committer | Alexei Podtelezhnikov <apodtele@gmail.com> | 2022-04-25 08:03:08 -0400 |
commit | 581dd064055eff6bda496c96e32b5400df57d8ef (patch) | |
tree | 4d6a2f526a97645624fac620260b4311ba3a9093 | |
parent | d59c7ce1b970bfe38b3df161e9dd711b75392709 (diff) | |
download | freetype2-581dd064055eff6bda496c96e32b5400df57d8ef.tar.gz |
[truetype] Reset IUP flags in `TT_RunIns`.
Fixes #1148 by moving the flag initialization back, partly reverting
7809007a and fd03dcc1. Initializing these flags elsewhere skips 'cvt'.
* src/truetype/ttinterp.c (TT_RunIns): Initialize the IUP flag here...
(TT_Run_Context): ... instead of here.
-rw-r--r-- | src/truetype/ttinterp.c | 17 |
1 files changed, 9 insertions, 8 deletions
diff --git a/src/truetype/ttinterp.c b/src/truetype/ttinterp.c index be3922bfa..e16565c3a 100644 --- a/src/truetype/ttinterp.c +++ b/src/truetype/ttinterp.c @@ -516,14 +516,6 @@ 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; @@ -7847,6 +7839,15 @@ Compute_Funcs( exc ); Compute_Round( exc, (FT_Byte)exc->GS.round_state ); + /* These flags cancel execution of some opcodes after IUP is called */ +#ifdef TT_SUPPORT_SUBPIXEL_HINTING_INFINALITY + exc->iup_called = FALSE; +#endif +#ifdef TT_SUPPORT_SUBPIXEL_HINTING_MINIMAL + exc->iupx_called = FALSE; + exc->iupy_called = FALSE; +#endif + do { exc->opcode = exc->code[exc->IP]; |