diff options
author | eugeni <eugeni@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2007-10-25 21:19:20 +0000 |
---|---|---|
committer | eugeni <eugeni@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2007-10-25 21:19:20 +0000 |
commit | c0eaa907992af161a78c813517fe52694c543c7d (patch) | |
tree | 5b039407e5e70f1f97b346446eee0bb0598affd3 | |
parent | 1f5bb6386e3d631f5a38ad29ed864c759cbe133f (diff) | |
download | mpv-c0eaa907992af161a78c813517fe52694c543c7d.tar.bz2 mpv-c0eaa907992af161a78c813517fe52694c543c7d.tar.xz |
Check return value of add_face.
This fixes segfault when reselecting fonts and the new font could not be
loaded (because of a bad font file, or too many font faces already loaded).
Patch by Glen Nakamura, glen at imodulo dot com.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@24855 b3059339-0415-0410-9bf9-f77b7e298cf2
-rw-r--r-- | libass/ass_font.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/libass/ass_font.c b/libass/ass_font.c index c434da7ca6..3ae6d716e5 100644 --- a/libass/ass_font.c +++ b/libass/ass_font.c @@ -294,12 +294,14 @@ FT_Glyph ass_font_get_glyph(void* fontconfig_priv, ass_font_t* font, uint32_t ch mp_msg(MSGT_ASS, MSGL_INFO, MSGTR_LIBASS_GlyphNotFoundReselectingFont, ch, font->desc.family, font->desc.bold, font->desc.italic); face_idx = add_face(fontconfig_priv, font, ch); + if (face_idx >= 0) { face = font->faces[face_idx]; index = FT_Get_Char_Index(face, ch); if (index == 0) { mp_msg(MSGT_ASS, MSGL_ERR, MSGTR_LIBASS_GlyphNotFound, ch, font->desc.family, font->desc.bold, font->desc.italic); } + } } #endif |