summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorManoloFLTK <41016272+ManoloFLTK@users.noreply.github.com>2022-06-27 13:25:35 +0200
committerManoloFLTK <41016272+ManoloFLTK@users.noreply.github.com>2022-06-27 13:25:35 +0200
commit2a5c2322f195b0db1fbe2e67df3d91ff77ace6fe (patch)
tree884f8f7b5b5fd5561d072b2595f4c905b4a2812d /src
parent2f52b54a084a7823df43f7f8ed72eba0223a5a05 (diff)
Fix for issue #454 : crash in Fl::get_font_name().
Diffstat (limited to 'src')
-rw-r--r--src/drivers/Quartz/Fl_Quartz_Graphics_Driver_font.cxx11
1 files changed, 7 insertions, 4 deletions
diff --git a/src/drivers/Quartz/Fl_Quartz_Graphics_Driver_font.cxx b/src/drivers/Quartz/Fl_Quartz_Graphics_Driver_font.cxx
index ce2a7e253..e3b03b949 100644
--- a/src/drivers/Quartz/Fl_Quartz_Graphics_Driver_font.cxx
+++ b/src/drivers/Quartz/Fl_Quartz_Graphics_Driver_font.cxx
@@ -318,13 +318,16 @@ double Fl_Quartz_Graphics_Driver::width(unsigned int wc) {
static void set_fontname_CoreText(Fl_Fontdesc *f) {
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);
}
#endif