diff --git a/src/_imagingft.c b/src/_imagingft.c index 7776e43f1..0e8622844 100644 --- a/src/_imagingft.c +++ b/src/_imagingft.c @@ -791,7 +791,7 @@ font_render(FontObject* self, PyObject* args) int index, error, ascender, horizontal_dir; int load_flags; unsigned char *source; - FT_Glyph glyph; + FT_Glyph glyph = NULL; FT_GlyphSlot glyph_slot; FT_Bitmap bitmap; FT_BitmapGlyph bitmap_glyph; @@ -890,8 +890,6 @@ font_render(FontObject* self, PyObject* args) bitmap = bitmap_glyph->bitmap; left = bitmap_glyph->left; - - FT_Done_Glyph(glyph); } else { bitmap = glyph_slot->bitmap; left = glyph_slot->bitmap_left; @@ -953,6 +951,10 @@ font_render(FontObject* self, PyObject* args) } x += glyph_info[i].x_advance; y -= glyph_info[i].y_advance; + if (glyph != NULL) { + FT_Done_Glyph(glyph); + glyph = NULL; + } } FT_Stroker_Done(stroker);