Do reconfigure the cascade list for Emoji font on OS X 10.9.5 (#313)

This seems to fix crash issues on 10.9.5 reported on Chrome, compare
crbug.com/549610
This commit is contained in:
Dominik Röttsches 2016-09-07 23:56:57 +03:00 committed by Behdad Esfahbod
parent 67e9fdf427
commit b717cd7be5
1 changed files with 10 additions and 3 deletions

View File

@ -149,9 +149,16 @@ create_ct_font (CGFontRef cg_font, CGFloat font_size)
/* crbug.com/576941 and crbug.com/625902 and the investigation in the latter
* bug indicate that the cascade list reconfiguration occasionally causes
* crashes in CoreText on OS X 10.9, thus let's skip this step on older
* operating system versions. */
if (&CTGetCoreTextVersion != NULL && CTGetCoreTextVersion() <= kCTVersionNumber10_9)
return ct_font;
* operating system versions. Except for the emoji font, where _not_
* reconfiguring the cascade list causes CoreText crashes. For details, see
* crbug.com/549610 */
if (&CTGetCoreTextVersion != NULL && CTGetCoreTextVersion() < kCTVersionNumber10_10) {
CFStringRef fontName = CTFontCopyPostScriptName (ct_font);
bool isEmojiFont = CFStringCompare (fontName, CFSTR("AppleColorEmoji"), 0) == kCFCompareEqualTo;
CFRelease (fontName);
if (!isEmojiFont)
return ct_font;
}
CFURLRef original_url = (CFURLRef)CTFontCopyAttribute(ct_font, kCTFontURLAttribute);