diff --git a/lib/ui/text/asset_manager_font_provider.cc b/lib/ui/text/asset_manager_font_provider.cc index c86b900609f66..fd019f23cc3f2 100644 --- a/lib/ui/text/asset_manager_font_provider.cc +++ b/lib/ui/text/asset_manager_font_provider.cc @@ -44,7 +44,8 @@ SkFontStyleSet* AssetManagerFontProvider::MatchFamily( if (found == registered_families_.end()) { return nullptr; } - return SkRef(&found->second); + sk_sp font_style_set = found->second; + return font_style_set.release(); } void AssetManagerFontProvider::RegisterAsset(std::string family_name, @@ -54,14 +55,12 @@ void AssetManagerFontProvider::RegisterAsset(std::string family_name, if (family_it == registered_families_.end()) { family_names_.push_back(family_name); - family_it = registered_families_ - .emplace(std::piecewise_construct, - std::forward_as_tuple(canonical_name), - std::forward_as_tuple(asset_manager_)) - .first; + auto value = std::make_pair( + canonical_name, sk_make_sp(asset_manager_)); + family_it = registered_families_.emplace(value).first; } - family_it->second.registerAsset(asset); + family_it->second->registerAsset(asset); } AssetManagerFontStyleSet::AssetManagerFontStyleSet( diff --git a/lib/ui/text/asset_manager_font_provider.h b/lib/ui/text/asset_manager_font_provider.h index 0e51f19100002..d24e5acb078c3 100644 --- a/lib/ui/text/asset_manager_font_provider.h +++ b/lib/ui/text/asset_manager_font_provider.h @@ -75,7 +75,7 @@ class AssetManagerFontProvider : public txt::FontAssetProvider { private: std::shared_ptr asset_manager_; - std::unordered_map + std::unordered_map> registered_families_; std::vector family_names_; diff --git a/third_party/txt/src/txt/typeface_font_asset_provider.cc b/third_party/txt/src/txt/typeface_font_asset_provider.cc index 4b0ebda5b8109..fa1c30ce1464d 100644 --- a/third_party/txt/src/txt/typeface_font_asset_provider.cc +++ b/third_party/txt/src/txt/typeface_font_asset_provider.cc @@ -43,7 +43,8 @@ SkFontStyleSet* TypefaceFontAssetProvider::MatchFamily( if (found == registered_families_.end()) { return nullptr; } - return SkRef(&found->second); + sk_sp font_style_set = found->second; + return font_style_set.release(); } void TypefaceFontAssetProvider::RegisterTypeface(sk_sp typeface) { @@ -69,13 +70,11 @@ void TypefaceFontAssetProvider::RegisterTypeface( auto family_it = registered_families_.find(canonical_name); if (family_it == registered_families_.end()) { family_names_.push_back(family_name_alias); - family_it = registered_families_ - .emplace(std::piecewise_construct, - std::forward_as_tuple(canonical_name), - std::forward_as_tuple()) - .first; + auto value = + std::make_pair(canonical_name, sk_make_sp()); + family_it = registered_families_.emplace(value).first; } - family_it->second.registerTypeface(std::move(typeface)); + family_it->second->registerTypeface(std::move(typeface)); } TypefaceFontStyleSet::TypefaceFontStyleSet() = default; diff --git a/third_party/txt/src/txt/typeface_font_asset_provider.h b/third_party/txt/src/txt/typeface_font_asset_provider.h index 70ad60f47ac98..2d75838f5322c 100644 --- a/third_party/txt/src/txt/typeface_font_asset_provider.h +++ b/third_party/txt/src/txt/typeface_font_asset_provider.h @@ -73,7 +73,8 @@ class TypefaceFontAssetProvider : public FontAssetProvider { SkFontStyleSet* MatchFamily(const std::string& family_name) override; private: - std::unordered_map registered_families_; + std::unordered_map> + registered_families_; std::vector family_names_; FML_DISALLOW_COPY_AND_ASSIGN(TypefaceFontAssetProvider);