diff options
| author | ManoloFLTK <41016272+ManoloFLTK@users.noreply.github.com> | 2022-06-27 13:25:35 +0200 |
|---|---|---|
| committer | ManoloFLTK <41016272+ManoloFLTK@users.noreply.github.com> | 2022-06-27 13:25:35 +0200 |
| commit | 2a5c2322f195b0db1fbe2e67df3d91ff77ace6fe (patch) | |
| tree | 884f8f7b5b5fd5561d072b2595f4c905b4a2812d /src/drivers | |
| parent | 2f52b54a084a7823df43f7f8ed72eba0223a5a05 (diff) | |
Fix for issue #454 : crash in Fl::get_font_name().
Diffstat (limited to 'src/drivers')
| -rw-r--r-- | src/drivers/Quartz/Fl_Quartz_Graphics_Driver_font.cxx | 11 |
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 |
