]> git.eshelyaron.com Git - emacs.git/commitdiff
Do not overwrite flags of succeeding points during generic move
authorPo Lu <luangruo@yahoo.com>
Mon, 22 Jan 2024 08:01:13 +0000 (16:01 +0800)
committerEshel Yaron <me@eshelyaron.com>
Mon, 22 Jan 2024 16:55:09 +0000 (17:55 +0100)
* src/sfnt.c (sfnt_move): Save FLAGS and restore it after X
axis movement loop.

(cherry picked from commit b2366900d4981c13152ef7fe15a44ad9b4b7663b)

src/sfnt.c

index 7b4c5544dc10988465ba46b8621ac7520eb33b27..ce7765e8f3e8e1e55758a20688da962644b4ebdf 100644 (file)
@@ -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)