summaryrefslogtreecommitdiffstats
path: root/libass/ass_render.c
diff options
context:
space:
mode:
authoreugeni <eugeni@b3059339-0415-0410-9bf9-f77b7e298cf2>2007-04-21 10:56:28 +0000
committereugeni <eugeni@b3059339-0415-0410-9bf9-f77b7e298cf2>2007-04-21 10:56:28 +0000
commit2b1fb8c4efaa53757c7f9fdc940e6748ba409681 (patch)
tree075425364b132ac146120683f6e05c72a0236a51 /libass/ass_render.c
parent02966ab87daa757a3046230b87cdc24fc077ba94 (diff)
downloadmpv-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/ass_render.c')
-rw-r--r--libass/ass_render.c7
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) {