|
@@ -534,23 +534,26 @@ Vector<String> OS_IOS::get_system_font_path_for_text(const String &p_font_name,
|
|
|
CTFontDescriptorRef font = CTFontDescriptorCreateWithAttributes(attributes);
|
|
|
if (font) {
|
|
|
CTFontRef family = CTFontCreateWithFontDescriptor(font, 0, nullptr);
|
|
|
- CFStringRef string = CFStringCreateWithCString(kCFAllocatorDefault, p_text.utf8().get_data(), kCFStringEncodingUTF8);
|
|
|
- CFRange range = CFRangeMake(0, CFStringGetLength(string));
|
|
|
- CTFontRef fallback_family = CTFontCreateForString(family, string, range);
|
|
|
- if (fallback_family) {
|
|
|
- CTFontDescriptorRef fallback_font = CTFontCopyFontDescriptor(fallback_family);
|
|
|
- if (fallback_font) {
|
|
|
- CFURLRef url = (CFURLRef)CTFontDescriptorCopyAttribute(fallback_font, kCTFontURLAttribute);
|
|
|
- if (url) {
|
|
|
- NSString *font_path = [NSString stringWithString:[(__bridge NSURL *)url path]];
|
|
|
- ret.push_back(String::utf8([font_path UTF8String]));
|
|
|
- CFRelease(url);
|
|
|
+ if (family) {
|
|
|
+ CFStringRef string = CFStringCreateWithCString(kCFAllocatorDefault, p_text.utf8().get_data(), kCFStringEncodingUTF8);
|
|
|
+ CFRange range = CFRangeMake(0, CFStringGetLength(string));
|
|
|
+ CTFontRef fallback_family = CTFontCreateForString(family, string, range);
|
|
|
+ if (fallback_family) {
|
|
|
+ CTFontDescriptorRef fallback_font = CTFontCopyFontDescriptor(fallback_family);
|
|
|
+ if (fallback_font) {
|
|
|
+ CFURLRef url = (CFURLRef)CTFontDescriptorCopyAttribute(fallback_font, kCTFontURLAttribute);
|
|
|
+ if (url) {
|
|
|
+ NSString *font_path = [NSString stringWithString:[(__bridge NSURL *)url path]];
|
|
|
+ ret.push_back(String::utf8([font_path UTF8String]));
|
|
|
+ CFRelease(url);
|
|
|
+ }
|
|
|
+ CFRelease(fallback_font);
|
|
|
}
|
|
|
- CFRelease(fallback_font);
|
|
|
+ CFRelease(fallback_family);
|
|
|
}
|
|
|
- CFRelease(fallback_family);
|
|
|
+ CFRelease(string);
|
|
|
+ CFRelease(family);
|
|
|
}
|
|
|
- CFRelease(string);
|
|
|
CFRelease(font);
|
|
|
}
|
|
|
|