From 50f05e87d412b6d0bfcecdf3afd45efd7351967b Mon Sep 17 00:00:00 2001 From: Christian Swinehart Date: Tue, 3 Dec 2024 19:06:24 -0500 Subject: [PATCH 1/3] check for empty `SkFontStyleSet` rather than null - matchFamily never returns null; a zero-length set is its return value on match failure --- src/utils/SkOrderedFontMgr.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/utils/SkOrderedFontMgr.cpp b/src/utils/SkOrderedFontMgr.cpp index 93aec63f268e..69d547e592b6 100644 --- a/src/utils/SkOrderedFontMgr.cpp +++ b/src/utils/SkOrderedFontMgr.cpp @@ -55,7 +55,8 @@ sk_sp SkOrderedFontMgr::onCreateStyleSet(int index) const { sk_sp SkOrderedFontMgr::onMatchFamily(const char familyName[]) const { for (const auto& fm : fList) { - if (auto fs = fm->matchFamily(familyName)) { + const auto fs = fm->matchFamily(familyName); + if (fs->count() > 0){ return fs; } } From 7ec7853fcf3f47953299a6908173d34cc15dc714 Mon Sep 17 00:00:00 2001 From: Christian Swinehart Date: Tue, 3 Dec 2024 22:53:52 -0500 Subject: [PATCH 2/3] onLegacyMakeTypeface can/should operate normally --- src/utils/SkOrderedFontMgr.cpp | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/src/utils/SkOrderedFontMgr.cpp b/src/utils/SkOrderedFontMgr.cpp index 69d547e592b6..2cfbb18bc6dd 100644 --- a/src/utils/SkOrderedFontMgr.cpp +++ b/src/utils/SkOrderedFontMgr.cpp @@ -86,6 +86,15 @@ sk_sp SkOrderedFontMgr::onMatchFamilyStyleCharacter( return nullptr; } +sk_sp SkOrderedFontMgr::onLegacyMakeTypeface(const char family[], SkFontStyle) const { + for (const auto& fm : fList) { + if (auto tf = fm->matchFamilyStyle(family, style)) { + return fm->legacyMakeTypeface(family, style); + } + } + return nullptr; +} + // All of these are defined to fail by returning null sk_sp SkOrderedFontMgr::onMakeFromData(sk_sp, int ttcIndex) const { @@ -105,7 +114,3 @@ sk_sp SkOrderedFontMgr::onMakeFromStreamArgs(std::unique_ptr SkOrderedFontMgr::onMakeFromFile(const char path[], int ttcIndex) const { return nullptr; } - -sk_sp SkOrderedFontMgr::onLegacyMakeTypeface(const char family[], SkFontStyle) const { - return nullptr; -} From fd7a8e3ce64439c31d14fa5502baad7d068662df Mon Sep 17 00:00:00 2001 From: Christian Swinehart Date: Thu, 5 Dec 2024 18:53:30 -0500 Subject: [PATCH 3/3] fix: forgot to replace arg name --- src/utils/SkOrderedFontMgr.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/utils/SkOrderedFontMgr.cpp b/src/utils/SkOrderedFontMgr.cpp index 2cfbb18bc6dd..faa7b65742d5 100644 --- a/src/utils/SkOrderedFontMgr.cpp +++ b/src/utils/SkOrderedFontMgr.cpp @@ -86,7 +86,7 @@ sk_sp SkOrderedFontMgr::onMatchFamilyStyleCharacter( return nullptr; } -sk_sp SkOrderedFontMgr::onLegacyMakeTypeface(const char family[], SkFontStyle) const { +sk_sp SkOrderedFontMgr::onLegacyMakeTypeface(const char family[], SkFontStyle style) const { for (const auto& fm : fList) { if (auto tf = fm->matchFamilyStyle(family, style)) { return fm->legacyMakeTypeface(family, style);