|
|
commit d60d2ca26dee484e0e4ba8f7336207444037650a
Author: ManoloFLTK <41016272+ManoloFLTK@users.noreply.github.com>
AuthorDate: Mon Jun 27 13:23:33 2022 +0200
Commit: ManoloFLTK <41016272+ManoloFLTK@users.noreply.github.com>
CommitDate: Mon Jun 27 13:23:33 2022 +0200
Fix for issue #454 : crash in Fl::get_font_name().
src/fl_set_fonts_mac.cxx | 11 +++++++----
1 file changed, 7 insertions(+), 4 deletions(-)
diff --git src/fl_set_fonts_mac.cxx src/fl_set_fonts_mac.cxx
index 75664b8..a205709 100644
--- src/fl_set_fonts_mac.cxx
+++ src/fl_set_fonts_mac.cxx
@@ -36,13 +36,16 @@ const char* Fl::get_font_name(Fl_Font fnum, int* ap) {
if (fl_mac_os_version >= Fl_X::CoreText_threshold) {
CFStringRef cfname = CFStringCreateWithCString(NULL, f->name, kCFStringEncodingUTF8);
CTFontRef ctfont = cfname ? CTFontCreateWithName(cfname, 0, NULL) : NULL;
- if (cfname) CFRelease(cfname);
+ if (cfname) { CFRelease(cfname); cfname = NULL; }
if (ctfont) {
cfname = CTFontCopyFullName(ctfont);
CFRelease(ctfont);
- CFStringGetCString(cfname, f->fontname, ENDOFBUFFER, kCFStringEncodingUTF8);
- CFRelease(cfname);
- } else strlcpy(f->fontname, f->name, ENDOFBUFFER);
+ if (cfname) {
+ CFStringGetCString(cfname, f->fontname, ENDOFBUFFER, kCFStringEncodingUTF8);
+ CFRelease(cfname);
+ }
+ }
+ if (!cfname) strlcpy(f->fontname, f->name, ENDOFBUFFER);
}
else
#endif
[ Direct Link to Message ] | |
|
| |