Mercurial > mplayer.hg
changeset 21501:aecea8c8afee
Properly free fontconfig patterns
author | reimar |
---|---|
date | Wed, 06 Dec 2006 11:28:49 +0000 |
parents | e7e7f397f991 |
children | a58943013e1d |
files | libvo/font_load_ft.c |
diffstat | 1 files changed, 7 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/libvo/font_load_ft.c Wed Dec 06 10:46:50 2006 +0000 +++ b/libvo/font_load_ft.c Wed Dec 06 11:28:49 2006 +0000 @@ -1140,6 +1140,7 @@ { #ifdef HAVE_FONTCONFIG FcPattern *fc_pattern; + FcPattern *fc_pattern2; FcChar8 *s; FcBool scalable; #endif @@ -1160,18 +1161,23 @@ fc_pattern = FcNameParse(font_name); FcConfigSubstitute(0, fc_pattern, FcMatchPattern); FcDefaultSubstitute(fc_pattern); + fc_pattern2 = fc_pattern; fc_pattern = FcFontMatch(0, fc_pattern, 0); + FcPatternDestroy(fc_pattern2); FcPatternGetBool(fc_pattern, FC_SCALABLE, 0, &scalable); if (scalable != FcTrue) { + FcPatternDestroy(fc_pattern); fc_pattern = FcNameParse("sans-serif"); FcConfigSubstitute(0, fc_pattern, FcMatchPattern); FcDefaultSubstitute(fc_pattern); + fc_pattern2 = fc_pattern; fc_pattern = FcFontMatch(0, fc_pattern, 0); + FcPatternDestroy(fc_pattern2); } // s doesn't need to be freed according to fontconfig docs FcPatternGetString(fc_pattern, FC_FILE, 0, &s); vo_font=read_font_desc_ft(s, width, height); - free(fc_pattern); + FcPatternDestroy(fc_pattern); } else #endif