FLTK logo

[branch-1.3] d60d2ca - Fix for issue #454 : crash in Fl::get_font_name().

FLTK matrix user chat room
(using Element browser app)   FLTK gitter user chat room   GitHub FLTK Project   FLTK News RSS Feed  
  FLTK Apps      FLTK Library      Forums      Links     Login 
 All Forums  |  Back to fltk.commit  ]
 
Previous Message ]Next Message ]

[branch-1.3] d60d2ca - Fix for issue #454 : crash in Fl::get_font_name(). "ManoloFLTK" Jun 27, 2022  
 
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 ]
 
     
Previous Message ]Next Message ]
 
 

Comments are owned by the poster. All other content is copyright 1998-2024 by Bill Spitzak and others. This project is hosted by The FLTK Team. Please report site problems to 'erco@seriss.com'.