changeset 23035:e8afcfccf359

Always deallocate glyphs. Fixes a memory leak.
author eugeni
date Sat, 21 Apr 2007 10:56:28 +0000
parents 82697eb7803d
children 980da4e288f3
files libass/ass_render.c
diffstat 1 files changed, 4 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/libass/ass_render.c	Sat Apr 21 10:43:19 2007 +0000
+++ b/libass/ass_render.c	Sat Apr 21 10:56:28 2007 +0000
@@ -402,9 +402,6 @@
 					&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 @@
 			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) {