summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBehdad Esfahbod <behdad@behdad.org>2014-12-28 16:34:47 -0800
committerBehdad Esfahbod <behdad@behdad.org>2014-12-28 16:34:47 -0800
commit76d1f6c0aba745e83b1b2033e7a5b598ab3471d0 (patch)
treeef1a5c93da60374a212e49324bc3b00cce077d88
parent507ae26358a491c7f665d32a3e07c2f176d152e9 (diff)
downloadlibass-76d1f6c0aba745e83b1b2033e7a5b598ab3471d0.tar.bz2
libass-76d1f6c0aba745e83b1b2033e7a5b598ab3471d0.tar.xz
Destroy harfbuzz faces before freetype faces
HarfBuzz faces reference the FreeType faces. Destroying FT faces first can cause crash in HB destruction code: https://bugs.freedesktop.org/show_bug.cgi?id=86300
-rw-r--r--libass/ass_font.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/libass/ass_font.c b/libass/ass_font.c
index 7b202a6..3633eb5 100644
--- a/libass/ass_font.c
+++ b/libass/ass_font.c
@@ -685,11 +685,11 @@ FT_Vector ass_font_get_kerning(ASS_Font *font, uint32_t c1, uint32_t c2)
void ass_font_free(ASS_Font *font)
{
int i;
+ if (font->shaper_priv)
+ ass_shaper_font_data_free(font->shaper_priv);
for (i = 0; i < font->n_faces; ++i)
if (font->faces[i])
FT_Done_Face(font->faces[i]);
- if (font->shaper_priv)
- ass_shaper_font_data_free(font->shaper_priv);
free(font->desc.family);
free(font);
}