shithub: freetype+ttf2subf

Download patch

ref: f9350be1e45baa1c29f7551274982262f8e769ce
parent: 52f2a008f171a820007a1bc71b44eb736e69500c
author: Ben Wagner <[email protected]>
date: Thu Apr 1 05:44:00 EDT 2021

[base] Complete `ft_glyphslot_clear`.

* src/base/ftobjs.c (ft_glyphslot_clear): This function is intended
to reset all the values of a glyph slot.  However, it was not
resetting the values of the advances and `glyph_index`.  Reset the
advances and `glyph_index` to zero.

git/fs: mount .git/fs: mount/attach disallowed
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,14 @@
 2021-04-02  Ben Wagner  <[email protected]>
 
+	[base] Complete `ft_glyphslot_clear`.
+
+	* src/base/ftobjs.c (ft_glyphslot_clear): This function is intended
+	to reset all the values of a glyph slot.  However, it was not
+	resetting the values of the advances and `glyph_index`.  Reset the
+	advances and `glyph_index` to zero.
+
+2021-04-02  Ben Wagner  <[email protected]>
+
 	[truetype] Prevent glyph program state from persisting.
 
 	`FDEF` instructions are specified as allowed only in 'prep' or
--- a/src/base/ftobjs.c
+++ b/src/base/ftobjs.c
@@ -539,6 +539,8 @@
     ft_glyphslot_free_bitmap( slot );
 
     /* clear all public fields in the glyph slot */
+    slot->glyph_index = 0;
+
     FT_ZERO( &slot->metrics );
     FT_ZERO( &slot->outline );
 
@@ -559,6 +561,8 @@
 
     slot->linearHoriAdvance = 0;
     slot->linearVertAdvance = 0;
+    slot->advance.x         = 0;
+    slot->advance.y         = 0;
     slot->lsb_delta         = 0;
     slot->rsb_delta         = 0;
   }