mirror of
https://github.com/fltk/fltk.git
synced 2026-06-01 23:06:54 +08:00
Fix for issue #454 : crash in Fl::get_font_name().
This commit is contained in:
@@ -36,13 +36,16 @@ const char* Fl::get_font_name(Fl_Font fnum, int* ap) {
|
|||||||
if (fl_mac_os_version >= Fl_X::CoreText_threshold) {
|
if (fl_mac_os_version >= Fl_X::CoreText_threshold) {
|
||||||
CFStringRef cfname = CFStringCreateWithCString(NULL, f->name, kCFStringEncodingUTF8);
|
CFStringRef cfname = CFStringCreateWithCString(NULL, f->name, kCFStringEncodingUTF8);
|
||||||
CTFontRef ctfont = cfname ? CTFontCreateWithName(cfname, 0, NULL) : NULL;
|
CTFontRef ctfont = cfname ? CTFontCreateWithName(cfname, 0, NULL) : NULL;
|
||||||
if (cfname) CFRelease(cfname);
|
if (cfname) { CFRelease(cfname); cfname = NULL; }
|
||||||
if (ctfont) {
|
if (ctfont) {
|
||||||
cfname = CTFontCopyFullName(ctfont);
|
cfname = CTFontCopyFullName(ctfont);
|
||||||
CFRelease(ctfont);
|
CFRelease(ctfont);
|
||||||
CFStringGetCString(cfname, f->fontname, ENDOFBUFFER, kCFStringEncodingUTF8);
|
if (cfname) {
|
||||||
CFRelease(cfname);
|
CFStringGetCString(cfname, f->fontname, ENDOFBUFFER, kCFStringEncodingUTF8);
|
||||||
} else strlcpy(f->fontname, f->name, ENDOFBUFFER);
|
CFRelease(cfname);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (!cfname) strlcpy(f->fontname, f->name, ENDOFBUFFER);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
Reference in New Issue
Block a user