Commit 1680885aa57f192a4ddad6ddd70521f4fe013db0

Alexei Podtelezhnikov 2022-02-09T16:41:07

[pshinter] Clear reused mask. In PS hinter, memory allocations persist until the module is done. Therefore, we have to clear reused masks. * src/pshinter/pshrec.c (ps_mask_table_alloc): Clear reused mask.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
diff --git a/src/pshinter/pshrec.c b/src/pshinter/pshrec.c
index e91f5d5..2a5cffb 100644
--- a/src/pshinter/pshrec.c
+++ b/src/pshinter/pshrec.c
@@ -249,6 +249,10 @@
     mask             = table->masks + count - 1;
     mask->num_bits   = 0;
     mask->end_point  = 0;
+    /* reused mask must be cleared */
+    if ( mask->max_bits )
+      FT_MEM_ZERO( mask->bytes, mask->max_bits >> 3 );
+
     table->num_masks = count;
 
   Exit: