Chromium Code Reviews| Index: src/core/SkTypeface.cpp |
| diff --git a/src/core/SkTypeface.cpp b/src/core/SkTypeface.cpp |
| index d768efc60365d8f972c39b66c00e4c522c1745bd..7c240a40aea46e7963b9720a6414def69c9e033f 100644 |
| --- a/src/core/SkTypeface.cpp |
| +++ b/src/core/SkTypeface.cpp |
| @@ -27,9 +27,9 @@ extern void WhitelistSerializeTypeface(const SkTypeface*, SkWStream* ); |
| #define SK_TYPEFACE_DELEGATE nullptr |
| #endif |
| -SkTypeface* (*gCreateTypefaceDelegate)(const char [], SkTypeface::Style ) = nullptr; |
| +sk_sp<SkTypeface> (*gCreateTypefaceDelegate)(const char [], SkTypeface::Style ) = nullptr; |
| void (*gSerializeTypefaceDelegate)(const SkTypeface*, SkWStream* ) = SK_TYPEFACE_DELEGATE; |
| -SkTypeface* (*gDeserializeTypefaceDelegate)(SkStream* ) = nullptr; |
| +sk_sp<SkTypeface> (*gDeserializeTypefaceDelegate)(SkStream* ) = nullptr; |
| /////////////////////////////////////////////////////////////////////////////// |
| @@ -96,8 +96,8 @@ SkTypeface* SkTypeface::GetDefaultTypeface(Style style) { |
| }); |
| } |
| -SkTypeface* SkTypeface::RefDefault(Style style) { |
| - return SkRef(GetDefaultTypeface(style)); |
| +sk_sp<SkTypeface> SkTypeface::MakeDefault(Style style) { |
| + return sk_ref_sp(GetDefaultTypeface(style)); |
| } |
| uint32_t SkTypeface::UniqueID(const SkTypeface* face) { |
| @@ -113,47 +113,46 @@ bool SkTypeface::Equal(const SkTypeface* facea, const SkTypeface* faceb) { |
| /////////////////////////////////////////////////////////////////////////////// |
| -SkTypeface* SkTypeface::CreateFromName(const char name[], Style style) { |
| +sk_sp<SkTypeface> SkTypeface::MakeFromName(const char name[], Style style) { |
| if (gCreateTypefaceDelegate) { |
| - SkTypeface* result = (*gCreateTypefaceDelegate)(name, style); |
| + sk_sp<SkTypeface> result = (*gCreateTypefaceDelegate)(name, style); |
| if (result) { |
| return result; |
| } |
| } |
| if (nullptr == name) { |
| - return RefDefault(style); |
| + return MakeDefault(style); |
| } |
| SkAutoTUnref<SkFontMgr> fm(SkFontMgr::RefDefault()); |
| - return fm->legacyCreateTypeface(name, SkFontStyle::FromOldStyle(style)); |
| + return sk_sp<SkTypeface>(fm->legacyCreateTypeface(name, SkFontStyle::FromOldStyle(style))); |
| } |
| -SkTypeface* SkTypeface::CreateFromTypeface(const SkTypeface* family, Style s) { |
| +sk_sp<SkTypeface> SkTypeface::MakeFromTypeface(SkTypeface* family, Style s) { |
| if (!family) { |
| - return SkTypeface::RefDefault(s); |
| + return SkTypeface::MakeDefault(s); |
| } |
| if (family->style() == s) { |
| - family->ref(); |
| - return const_cast<SkTypeface*>(family); |
| + return sk_ref_sp(family); |
| } |
| SkAutoTUnref<SkFontMgr> fm(SkFontMgr::RefDefault()); |
| - return fm->matchFaceStyle(family, SkFontStyle::FromOldStyle(s)); |
| + return sk_sp<SkTypeface>(fm->matchFaceStyle(family, SkFontStyle::FromOldStyle(s))); |
| } |
| -SkTypeface* SkTypeface::CreateFromStream(SkStreamAsset* stream, int index) { |
| +sk_sp<SkTypeface> SkTypeface::MakeFromStream(SkStreamAsset* stream, int index) { |
| SkAutoTUnref<SkFontMgr> fm(SkFontMgr::RefDefault()); |
| - return fm->createFromStream(stream, index); |
| + return sk_sp<SkTypeface>(fm->createFromStream(stream, index)); |
| } |
| -SkTypeface* SkTypeface::CreateFromFontData(SkFontData* data) { |
| +sk_sp<SkTypeface> SkTypeface::MakeFromFontData(SkFontData* data) { |
| SkAutoTUnref<SkFontMgr> fm(SkFontMgr::RefDefault()); |
| - return fm->createFromFontData(data); |
| + return sk_sp<SkTypeface>(fm->createFromFontData(data)); |
| } |
| -SkTypeface* SkTypeface::CreateFromFile(const char path[], int index) { |
| +sk_sp<SkTypeface> SkTypeface::MakeFromFile(const char path[], int index) { |
| SkAutoTUnref<SkFontMgr> fm(SkFontMgr::RefDefault()); |
| - return fm->createFromFile(path, index); |
| + return sk_sp<SkTypeface>(fm->createFromFile(path, index)); |
| } |
| /////////////////////////////////////////////////////////////////////////////// |
| @@ -174,7 +173,7 @@ void SkTypeface::serialize(SkWStream* wstream) const { |
| desc.serialize(wstream); |
| } |
| -SkTypeface* SkTypeface::Deserialize(SkStream* stream) { |
| +sk_sp<SkTypeface> SkTypeface::MakeDeserialize(SkStream* stream) { |
| if (gDeserializeTypefaceDelegate) { |
| return (*gDeserializeTypefaceDelegate)(stream); |
| } |
| @@ -186,12 +185,12 @@ SkTypeface* SkTypeface::Deserialize(SkStream* stream) { |
| SkFontData* data = desc.detachFontData(); |
| if (data) { |
| - SkTypeface* typeface = SkTypeface::CreateFromFontData(data); |
| + auto typeface = SkTypeface::MakeFromFontData(data); |
|
f(malita)
2016/05/02 13:46:35
Nit: avoid auto for sk_sp?
bungeman-skia
2016/05/02 20:24:54
Done.
|
| if (typeface) { |
| return typeface; |
| } |
| } |
| - return SkTypeface::CreateFromName(desc.getFamilyName(), desc.getStyle()); |
| + return SkTypeface::MakeFromName(desc.getFamilyName(), desc.getStyle()); |
| } |
| /////////////////////////////////////////////////////////////////////////////// |
| @@ -334,7 +333,7 @@ bool SkTypeface::onComputeBounds(SkRect* bounds) const { |
| const SkScalar invTextSize = 1 / textSize; |
| SkPaint paint; |
| - paint.setTypeface(const_cast<SkTypeface*>(this)); |
| + paint.setTypeface(sk_ref_sp(const_cast<SkTypeface*>(this))); |
| paint.setTextSize(textSize); |
| paint.setLinearText(true); |