]> granicus.if.org Git - libass/commitdiff
Always deallocate glyphs. Fixes a memory leak.
authoreugeni <eugeni@b3059339-0415-0410-9bf9-f77b7e298cf2>
Sat, 21 Apr 2007 10:56:28 +0000 (10:56 +0000)
committereugeni <eugeni@b3059339-0415-0410-9bf9-f77b7e298cf2>
Sat, 21 Apr 2007 10:56:28 +0000 (10:56 +0000)
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@23053 b3059339-0415-0410-9bf9-f77b7e298cf2

libass/ass_render.c

index 763f548ff6b846d9a3f15ce18f4cdb36d895be9e..75bb0d5adea89699d122108011667f07f253f9f7 100644 (file)
@@ -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) {