From: Po Lu Date: Mon, 22 Jan 2024 08:01:13 +0000 (+0800) Subject: Do not overwrite flags of succeeding points during generic move X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=51b2a709c5a92186adfdae8a7fb28c67251279ba;p=emacs.git Do not overwrite flags of succeeding points during generic move * src/sfnt.c (sfnt_move): Save FLAGS and restore it after X axis movement loop. (cherry picked from commit b2366900d4981c13152ef7fe15a44ad9b4b7663b) --- diff --git a/src/sfnt.c b/src/sfnt.c index 7b4c5544dc1..ce7765e8f3e 100644 --- a/src/sfnt.c +++ b/src/sfnt.c @@ -10776,6 +10776,7 @@ sfnt_move (sfnt_f26dot6 *restrict x, sfnt_f26dot6 *restrict y, sfnt_f26dot6 versor, k; sfnt_f2dot14 dot_product; size_t num; + unsigned char *flags_start; dot_product = interpreter->state.vector_dot_product; @@ -10788,6 +10789,10 @@ sfnt_move (sfnt_f26dot6 *restrict x, sfnt_f26dot6 *restrict y, other out, so the result is 26.6. */ versor = interpreter->state.freedom_vector.x; + /* Save flags that it may be restored for the second Y axis + loop. */ + flags_start = flags; + if (versor) { /* Move along X axis, converting the distance to the freedom @@ -10807,6 +10812,7 @@ sfnt_move (sfnt_f26dot6 *restrict x, sfnt_f26dot6 *restrict y, } } + flags = flags_start; versor = interpreter->state.freedom_vector.y; if (versor)