diff options
author | Behdad Esfahbod <behdad@behdad.org> | 2014-12-28 16:34:47 -0800 |
---|---|---|
committer | Behdad Esfahbod <behdad@behdad.org> | 2014-12-28 16:34:47 -0800 |
commit | 76d1f6c0aba745e83b1b2033e7a5b598ab3471d0 (patch) | |
tree | ef1a5c93da60374a212e49324bc3b00cce077d88 | |
parent | 507ae26358a491c7f665d32a3e07c2f176d152e9 (diff) | |
download | libass-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.c | 4 |
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); } |