vlc | branch: master | Felix Paul Kühne <[email protected]> | Tue May 29 19:34:16 2012 +0200| [6938a98a430431a7d8f41228c60dd883b8264e6a] | committer: Felix Paul Kühne
freetype: fixed crash within ATS when looking for non-existing font families > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=6938a98a430431a7d8f41228c60dd883b8264e6a --- modules/text_renderer/freetype.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/modules/text_renderer/freetype.c b/modules/text_renderer/freetype.c index 0152d8e..19e2baa 100644 --- a/modules/text_renderer/freetype.c +++ b/modules/text_renderer/freetype.c @@ -722,14 +722,15 @@ static char* MacLegacy_Select( filter_t *p_filter, const char* psz_fontname, *i_idx = 0; msg_Dbg( p_filter, "looking for %s", psz_fontname ); - cf_fontName = CFStringCreateWithCString( NULL, psz_fontname, kCFStringEncodingUTF8 ); + cf_fontName = CFStringCreateWithCString( kCFAllocatorDefault, psz_fontname, kCFStringEncodingUTF8 ); + ats_font_id = ATSFontFindFromName( cf_fontName, kATSOptionFlagsIncludeDisabledMask ); CFRelease( cf_fontName ); - if ( ats_font_id == 0 || ats_font_id == 0xFFFFFFFFUL ) + if ( ats_font_id == 0xFFFFFFFFUL ) { msg_Dbg( p_filter, "ATS couldn't find %s by name, checking family", psz_fontname ); - ats_font_id = ATSFontFamilyFindFromName( cf_fontName, kATSOptionFlagsIncludeDisabledMask ); + ats_font_id = ATSFontFamilyFindFromName( cf_fontName, kATSOptionFlagsDefault ); if ( ats_font_id == 0 || ats_font_id == 0xFFFFFFFFUL ) { @@ -737,6 +738,11 @@ static char* MacLegacy_Select( filter_t *p_filter, const char* psz_fontname, return NULL; } } + else if( ats_font_id == 0 ) + { + msg_Err( p_filter, "ATS couldn't find %s by name, won't check family", psz_fontname ); + return NULL; + } if ( noErr != ATSFontGetFileReference( ats_font_id, &ref ) ) { _______________________________________________ vlc-commits mailing list [email protected] http://mailman.videolan.org/listinfo/vlc-commits
