diff options
author | Mike Reed <reed@google.com> | 2017-09-25 13:21:45 -0400 |
---|---|---|
committer | Skia Commit-Bot <skia-commit-bot@chromium.org> | 2017-09-25 19:45:09 +0000 |
commit | 4bf296be2821d2bdd0afabae9fdfe18e7e9b59cb (patch) | |
tree | ada1341d6943d4e8b91b5d9da331ac82873c3677 /src/ports/SkFontHost_mac.cpp | |
parent | d6c04d9a05c1b4066c09083a673d7d3cf61a3aa6 (diff) |
migrate to sk_sp for SkFontMgr API
Bug: skia:
Change-Id: I1bf2a13537f67938cdc9956080065d10ea0bd1d8
Reviewed-on: https://skia-review.googlesource.com/48740
Commit-Queue: Ben Wagner <bungeman@google.com>
Reviewed-by: Ben Wagner <bungeman@google.com>
Diffstat (limited to 'src/ports/SkFontHost_mac.cpp')
-rw-r--r-- | src/ports/SkFontHost_mac.cpp | 51 |
1 files changed, 26 insertions, 25 deletions
diff --git a/src/ports/SkFontHost_mac.cpp b/src/ports/SkFontHost_mac.cpp index d8bac13cdd..d19ac5b6b4 100644 --- a/src/ports/SkFontHost_mac.cpp +++ b/src/ports/SkFontHost_mac.cpp @@ -545,15 +545,15 @@ static bool find_by_CTFontRef(SkTypeface* cached, void* context) { } /** Creates a typeface, searching the cache if isLocalStream is false. */ -static SkTypeface* create_from_CTFontRef(UniqueCFRef<CTFontRef> font, - UniqueCFRef<CFTypeRef> resource, - bool isLocalStream) { +static sk_sp<SkTypeface> create_from_CTFontRef(UniqueCFRef<CTFontRef> font, + UniqueCFRef<CFTypeRef> resource, + bool isLocalStream) { SkASSERT(font); if (!isLocalStream) { SkTypeface* face = SkTypefaceCache::FindByProcAndRef(find_by_CTFontRef, (void*)font.get()); if (face) { - return face; + return sk_sp<SkTypeface>(face); } } @@ -567,11 +567,11 @@ static SkTypeface* create_from_CTFontRef(UniqueCFRef<CTFontRef> font, if (!isLocalStream) { SkTypefaceCache::Add(face); } - return face; + return sk_sp<SkTypeface>(face); } /** Creates a typeface from a descriptor, searching the cache. */ -static SkTypeface* create_from_desc(CTFontDescriptorRef desc) { +static sk_sp<SkTypeface> create_from_desc(CTFontDescriptorRef desc) { UniqueCFRef<CTFontRef> ctFont(CTFontCreateWithFontDescriptor(desc, 0, nullptr)); if (!ctFont) { return nullptr; @@ -646,7 +646,7 @@ static UniqueCFRef<CTFontDescriptorRef> create_descriptor(const char familyName[ } /** Creates a typeface from a name, searching the cache. */ -static SkTypeface* create_from_name(const char familyName[], const SkFontStyle& style) { +static sk_sp<SkTypeface> create_from_name(const char familyName[], const SkFontStyle& style) { UniqueCFRef<CTFontDescriptorRef> desc = create_descriptor(familyName, style); if (!desc) { return nullptr; @@ -666,7 +666,7 @@ SkTypeface* SkCreateTypefaceFromCTFont(CTFontRef font, CFTypeRef resource) { } return create_from_CTFontRef(UniqueCFRef<CTFontRef>(font), UniqueCFRef<CFTypeRef>(resource), - false); + false).release(); } static const char* map_css_names(const char* name) { @@ -1394,7 +1394,8 @@ void SkScalerContext_Mac::CTPathElement(void *info, const CGPathElement *element // Returns nullptr on failure // Call must still manage its ownership of provider -static SkTypeface* create_from_dataProvider(UniqueCFRef<CGDataProviderRef> provider, int ttcIndex) { +static sk_sp<SkTypeface> create_from_dataProvider(UniqueCFRef<CGDataProviderRef> provider, + int ttcIndex) { if (ttcIndex != 0) { return nullptr; } @@ -2262,14 +2263,14 @@ public: SkASSERT((unsigned)index < (unsigned)CFArrayGetCount(fArray.get())); CTFontDescriptorRef desc = (CTFontDescriptorRef)CFArrayGetValueAtIndex(fArray.get(), index); - return create_from_desc(desc); + return create_from_desc(desc).release(); } SkTypeface* matchStyle(const SkFontStyle& pattern) override { if (0 == fCount) { return nullptr; } - return create_from_desc(findMatchingDesc(pattern)); + return create_from_desc(findMatchingDesc(pattern)).release(); } private: @@ -2365,7 +2366,7 @@ protected: SkTypeface* onMatchFamilyStyle(const char familyName[], const SkFontStyle& style) const override { UniqueCFRef<CTFontDescriptorRef> desc = create_descriptor(familyName, style); - return create_from_desc(desc.get()); + return create_from_desc(desc.get()).release(); } SkTypeface* onMatchFamilyStyleCharacter(const char familyName[], @@ -2388,7 +2389,7 @@ protected: CFRange range = CFRangeMake(0, CFStringGetLength(string.get())); // in UniChar units. UniqueCFRef<CTFontRef> fallbackFont( CTFontCreateForString(currentFont.get(), string.get(), range)); - return create_from_CTFontRef(std::move(fallbackFont), nullptr, false); + return create_from_CTFontRef(std::move(fallbackFont), nullptr, false).release(); } SkTypeface* onMatchFaceStyle(const SkTypeface* familyMember, @@ -2396,16 +2397,16 @@ protected: return nullptr; } - SkTypeface* onCreateFromData(SkData* data, int ttcIndex) const override { - UniqueCFRef<CGDataProviderRef> pr(SkCreateDataProviderFromData(sk_ref_sp(data))); + sk_sp<SkTypeface> onMakeFromData(sk_sp<SkData> data, int ttcIndex) const override { + UniqueCFRef<CGDataProviderRef> pr(SkCreateDataProviderFromData(std::move(data))); if (!pr) { return nullptr; } return create_from_dataProvider(std::move(pr), ttcIndex); } - SkTypeface* onCreateFromStream(SkStreamAsset* bareStream, int ttcIndex) const override { - std::unique_ptr<SkStreamAsset> stream(bareStream); + sk_sp<SkTypeface> onMakeFromStreamIndex(std::unique_ptr<SkStreamAsset> stream, + int ttcIndex) const override { UniqueCFRef<CGDataProviderRef> pr(SkCreateDataProviderFromStream(std::move(stream))); if (!pr) { return nullptr; @@ -2501,8 +2502,8 @@ protected: } return std::move(dict); } - SkTypeface* onCreateFromStream(SkStreamAsset* bs, const SkFontArguments& args) const override { - std::unique_ptr<SkStreamAsset> s(bs); + sk_sp<SkTypeface> onMakeFromStreamArgs(std::unique_ptr<SkStreamAsset> s, + const SkFontArguments& args) const override { if (args.getCollectionIndex() != 0) { return nullptr; } @@ -2588,7 +2589,7 @@ protected: } return std::move(dict); } - SkTypeface* onCreateFromFontData(std::unique_ptr<SkFontData> fontData) const override { + sk_sp<SkTypeface> onMakeFromFontData(std::unique_ptr<SkFontData> fontData) const override { if (fontData->getIndex() != 0) { return nullptr; } @@ -2621,7 +2622,7 @@ protected: return create_from_CTFontRef(std::move(ct), std::move(cg), true); } - SkTypeface* onCreateFromFile(const char path[], int ttcIndex) const override { + sk_sp<SkTypeface> onMakeFromFile(const char path[], int ttcIndex) const override { UniqueCFRef<CGDataProviderRef> pr(CGDataProviderCreateWithFilename(path)); if (!pr) { return nullptr; @@ -2629,12 +2630,12 @@ protected: return create_from_dataProvider(std::move(pr), ttcIndex); } - SkTypeface* onLegacyCreateTypeface(const char familyName[], SkFontStyle style) const override { + sk_sp<SkTypeface> onLegacyMakeTypeface(const char familyName[], SkFontStyle style) const override { if (familyName) { familyName = map_css_names(familyName); } - SkTypeface* face = create_from_name(familyName, style); + sk_sp<SkTypeface> face = create_from_name(familyName, style); if (face) { return face; } @@ -2643,9 +2644,9 @@ protected: static SkOnce lookupDefault; static const char FONT_DEFAULT_NAME[] = "Lucida Sans"; lookupDefault([]{ - gDefaultFace = create_from_name(FONT_DEFAULT_NAME, SkFontStyle()); + gDefaultFace = create_from_name(FONT_DEFAULT_NAME, SkFontStyle()).release(); }); - return SkSafeRef(gDefaultFace); + return sk_ref_sp(gDefaultFace); } }; |