diff --git a/third_party/txt/src/txt/font_collection.cc b/third_party/txt/src/txt/font_collection.cc index 5f895ef41afee..6820f14264eeb 100644 --- a/third_party/txt/src/txt/font_collection.cc +++ b/third_party/txt/src/txt/font_collection.cc @@ -85,6 +85,12 @@ FontCollection::FontCollection() : enable_font_fallback_(true) {} FontCollection::~FontCollection() { minikin::Layout::purgeCaches(); + +#if FLUTTER_ENABLE_SKSHAPER + if (skt_collection_) { + skt_collection_->clearCaches(); + } +#endif } size_t FontCollection::GetFontManagersCount() const { @@ -127,6 +133,12 @@ std::vector> FontCollection::GetFontManagerOrder() const { void FontCollection::DisableFontFallback() { enable_font_fallback_ = false; + +#if FLUTTER_ENABLE_SKSHAPER + if (skt_collection_) { + skt_collection_->disableFontFallback(); + } +#endif } std::shared_ptr @@ -346,8 +358,13 @@ FontCollection::GetFallbackFontFamily(const sk_sp& manager, void FontCollection::ClearFontFamilyCache() { font_collections_cache_.clear(); -} +#if FLUTTER_ENABLE_SKSHAPER + if (skt_collection_) { + skt_collection_->clearCaches(); + } +#endif +} #if FLUTTER_ENABLE_SKSHAPER sk_sp