diff options
| author | ManoloFLTK <41016272+ManoloFLTK@users.noreply.github.com> | 2022-06-25 20:00:17 +0200 |
|---|---|---|
| committer | ManoloFLTK <41016272+ManoloFLTK@users.noreply.github.com> | 2022-06-25 20:00:17 +0200 |
| commit | feb0d918fb8ead02db12a3031b4d46a970a935ef (patch) | |
| tree | 930823c70dc31eefc39d428eb23d81e94fa62266 /src/drivers/Quartz | |
| parent | fb7469c85c86a1a5dc62f5feaf540dbd7307600e (diff) | |
Remove arbitrary maximum length of font name.
Diffstat (limited to 'src/drivers/Quartz')
| -rw-r--r-- | src/drivers/Quartz/Fl_Quartz_Graphics_Driver_font.cxx | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/src/drivers/Quartz/Fl_Quartz_Graphics_Driver_font.cxx b/src/drivers/Quartz/Fl_Quartz_Graphics_Driver_font.cxx index f34d36d54..ce2a7e253 100644 --- a/src/drivers/Quartz/Fl_Quartz_Graphics_Driver_font.cxx +++ b/src/drivers/Quartz/Fl_Quartz_Graphics_Driver_font.cxx @@ -679,9 +679,12 @@ Fl_Font Fl_Quartz_Graphics_Driver::ADD_SUFFIX(set_fonts, _CoreText)(const char* CTFontRef font = CTFontCreateWithFontDescriptor(fdesc, 0., NULL); CFStringRef cfname = CTFontCopyPostScriptName(font); CFRelease(font); - static char fname[200]; - CFStringGetCString(cfname, fname, sizeof(fname), kCFStringEncodingUTF8); - tabfontnames[i] = fl_strdup(fname); // never free'ed + CFDataRef cfdata = CFStringCreateExternalRepresentation(NULL, cfname, kCFStringEncodingUTF8, '?'); + CFIndex l = CFDataGetLength(cfdata); + tabfontnames[i] = (char*)malloc(l+1); // never free'ed + memcpy(tabfontnames[i], CFDataGetBytePtr(cfdata), l); + tabfontnames[i][l] = 0; + CFRelease(cfdata); CFRelease(cfname); } CFRelease(arrayref); |
