From f9350be1e45baa1c29f7551274982262f8e769ce Mon Sep 17 00:00:00 2001 From: Ben Wagner Date: Thu, 1 Apr 2021 09:44:00 -0400 Subject: [PATCH] [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. --- ChangeLog | 9 +++++++++ src/base/ftobjs.c | 4 ++++ 2 files changed, 13 insertions(+) diff --git a/ChangeLog b/ChangeLog index 0e599b9c5..6e11b2a93 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,12 @@ +2021-04-02 Ben Wagner + + [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 [truetype] Prevent glyph program state from persisting. diff --git a/src/base/ftobjs.c b/src/base/ftobjs.c index 56e1360e0..bee301c42 100644 --- 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; }