diff options
author | eugeni <eugeni@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2007-04-21 10:56:28 +0000 |
---|---|---|
committer | eugeni <eugeni@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2007-04-21 10:56:28 +0000 |
commit | 2b1fb8c4efaa53757c7f9fdc940e6748ba409681 (patch) | |
tree | 075425364b132ac146120683f6e05c72a0236a51 /libass | |
parent | 02966ab87daa757a3046230b87cdc24fc077ba94 (diff) | |
download | mpv-2b1fb8c4efaa53757c7f9fdc940e6748ba409681.tar.bz2 mpv-2b1fb8c4efaa53757c7f9fdc940e6748ba409681.tar.xz |
Always deallocate glyphs. Fixes a memory leak.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@23053 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'libass')
-rw-r--r-- | libass/ass_render.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/libass/ass_render.c b/libass/ass_render.c index 763f548ff6..75bb0d5ade 100644 --- a/libass/ass_render.c +++ b/libass/ass_render.c @@ -402,9 +402,6 @@ static ass_image_t* render_text(text_info_t* text_info, int dst_x, int dst_y) &text_info->glyphs[i].bm_s, text_info->glyphs[i].be); if (error) text_info->glyphs[i].symbol = 0; - FT_Done_Glyph(text_info->glyphs[i].glyph); - if (text_info->glyphs[i].outline_glyph) - FT_Done_Glyph(text_info->glyphs[i].outline_glyph); // cache hash_val.bm_o = text_info->glyphs[i].bm_o; @@ -412,6 +409,10 @@ static ass_image_t* render_text(text_info_t* text_info, int dst_x, int dst_y) hash_val.bm_s = text_info->glyphs[i].bm_s; cache_add_bitmap(&(text_info->glyphs[i].hash_key), &hash_val); } + if (text_info->glyphs[i].glyph) + FT_Done_Glyph(text_info->glyphs[i].glyph); + if (text_info->glyphs[i].outline_glyph) + FT_Done_Glyph(text_info->glyphs[i].outline_glyph); } for (i = 0; i < text_info->length; ++i) { |