Index: src/ports/SkFontHost_FreeType.cpp |
diff --git a/src/ports/SkFontHost_FreeType.cpp b/src/ports/SkFontHost_FreeType.cpp |
index 6f235edb8f7a70afde5ee5e81575be958b8b11aa..21e33fbd325945ce9ec2d05466d93acae98304b5 100644 |
--- a/src/ports/SkFontHost_FreeType.cpp |
+++ b/src/ports/SkFontHost_FreeType.cpp |
@@ -409,7 +409,7 @@ private: |
/////////////////////////////////////////////////////////////////////////// |
-static bool canEmbed(FT_Face face) { |
+static bool can_embed(FT_Face face) { |
FT_UShort fsType = FT_Get_FSType_Flags(face); |
return (fsType & (FT_FSTYPE_RESTRICTED_LICENSE_EMBEDDING | |
FT_FSTYPE_BITMAP_EMBEDDING_ONLY)) == 0; |
@@ -452,6 +452,12 @@ static void populate_glyph_to_unicode(FT_Face& face, SkTDArray<SkUnichar>* glyph |
} |
} |
+bool SkTypeface_FreeType::onCanEmbed() const { |
+ AutoFTAccess fta(this); |
+ FT_Face face = fta.face(); |
+ return !face || can_embed(face); |
+} |
+ |
SkAdvancedTypefaceMetrics* SkTypeface_FreeType::onGetAdvancedTypefaceMetrics( |
PerGlyphInfo perGlyphInfo, |
const uint32_t* glyphIDs, |
@@ -472,7 +478,7 @@ SkAdvancedTypefaceMetrics* SkTypeface_FreeType::onGetAdvancedTypefaceMetrics( |
info->fFlags = SkTBitOr<SkAdvancedTypefaceMetrics::FontFlags>( |
info->fFlags, SkAdvancedTypefaceMetrics::kMultiMaster_FontFlag); |
} |
- if (!canEmbed(face)) { |
+ if (!can_embed(face)) { |
info->fFlags = SkTBitOr<SkAdvancedTypefaceMetrics::FontFlags>( |
info->fFlags, |
SkAdvancedTypefaceMetrics::kNotEmbeddable_FontFlag); |