Index: src/core/SkTypeface.cpp |
diff --git a/src/core/SkTypeface.cpp b/src/core/SkTypeface.cpp |
index 0c960d591510a4b7992164208ac985587ec8b482..3c4f5cb7e7929eb856f35713437ff4450ba52777 100644 |
--- a/src/core/SkTypeface.cpp |
+++ b/src/core/SkTypeface.cpp |
@@ -9,6 +9,7 @@ |
#include "SkEndian.h" |
#include "SkFontDescriptor.h" |
#include "SkFontMgr.h" |
+#include "SkMakeUnique.h" |
#include "SkMutex.h" |
#include "SkOTTable_OS_2.h" |
#include "SkOnce.h" |
@@ -150,9 +151,9 @@ sk_sp<SkTypeface> SkTypeface::MakeFromStream(SkStreamAsset* stream, int index) { |
return sk_sp<SkTypeface>(fm->createFromStream(stream, index)); |
} |
-sk_sp<SkTypeface> SkTypeface::MakeFromFontData(SkFontData* data) { |
+sk_sp<SkTypeface> SkTypeface::MakeFromFontData(std::unique_ptr<SkFontData> data) { |
SkAutoTUnref<SkFontMgr> fm(SkFontMgr::RefDefault()); |
- return sk_sp<SkTypeface>(fm->createFromFontData(data)); |
+ return sk_sp<SkTypeface>(fm->createFromFontData(std::move(data))); |
} |
sk_sp<SkTypeface> SkTypeface::MakeFromFile(const char path[], int index) { |
@@ -173,7 +174,7 @@ void SkTypeface::serialize(SkWStream* wstream) const { |
// Embed font data if it's a local font. |
if (isLocal && !desc.hasFontData()) { |
- desc.setFontData(this->onCreateFontData()); |
+ desc.setFontData(this->onMakeFontData()); |
} |
desc.serialize(wstream); |
} |
@@ -188,9 +189,9 @@ sk_sp<SkTypeface> SkTypeface::MakeDeserialize(SkStream* stream) { |
return nullptr; |
} |
- SkFontData* data = desc.detachFontData(); |
+ std::unique_ptr<SkFontData> data = desc.detachFontData(); |
if (data) { |
- sk_sp<SkTypeface> typeface(SkTypeface::MakeFromFontData(data)); |
+ sk_sp<SkTypeface> typeface(SkTypeface::MakeFromFontData(std::move(data))); |
if (typeface) { |
return typeface; |
} |
@@ -227,15 +228,15 @@ SkStreamAsset* SkTypeface::openStream(int* ttcIndex) const { |
return this->onOpenStream(ttcIndex); |
} |
-SkFontData* SkTypeface::createFontData() const { |
- return this->onCreateFontData(); |
+std::unique_ptr<SkFontData> SkTypeface::makeFontData() const { |
+ return this->onMakeFontData(); |
} |
// This implementation is temporary until this method can be made pure virtual. |
-SkFontData* SkTypeface::onCreateFontData() const { |
+std::unique_ptr<SkFontData> SkTypeface::onMakeFontData() const { |
int index; |
- SkAutoTDelete<SkStreamAsset> stream(this->onOpenStream(&index)); |
- return new SkFontData(stream.release(), index, nullptr, 0); |
+ std::unique_ptr<SkStreamAsset> stream(this->onOpenStream(&index)); |
+ return skstd::make_unique<SkFontData>(std::move(stream), index, nullptr, 0); |
}; |
int SkTypeface::charsToGlyphs(const void* chars, Encoding encoding, |