diff options
author | 2017-09-26 09:46:08 -0400 | |
---|---|---|
committer | 2017-09-26 14:05:18 +0000 | |
commit | 592273965a7fc7fc403252e420d15f6555b8f25d (patch) | |
tree | 9d5f6fa74228b81278bc97af1dc78d9587d63c08 /src/ports/SkFontMgr_android.cpp | |
parent | f6f7cf60985d8e109cc136f25e2a3c3383ca05ea (diff) |
Revert "Revert "migrate to sk_sp for SkFontMgr API""
This reverts commit f40ae1a4b5365620463bd63b5140bd3fc78894a1.
Bug: skia:
Change-Id: I752606de92ea405d6e50219c98030409b00a2841
Reviewed-on: https://skia-review.googlesource.com/51160
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Mike Reed <reed@google.com>
Diffstat (limited to 'src/ports/SkFontMgr_android.cpp')
-rw-r--r-- | src/ports/SkFontMgr_android.cpp | 34 |
1 files changed, 19 insertions, 15 deletions
diff --git a/src/ports/SkFontMgr_android.cpp b/src/ports/SkFontMgr_android.cpp index 637d2f3182..0e12ce2c30 100644 --- a/src/ports/SkFontMgr_android.cpp +++ b/src/ports/SkFontMgr_android.cpp @@ -414,17 +414,18 @@ protected: return nullptr; } - SkTypeface* onCreateFromData(SkData* data, int ttcIndex) const override { - return this->createFromStream(new SkMemoryStream(sk_ref_sp(data)), ttcIndex); + sk_sp<SkTypeface> onMakeFromData(sk_sp<SkData> data, int ttcIndex) const override { + return this->makeFromStream(std::unique_ptr<SkStreamAsset>(new SkMemoryStream(std::move(data))), + ttcIndex); } - SkTypeface* onCreateFromFile(const char path[], int ttcIndex) const override { + sk_sp<SkTypeface> onMakeFromFile(const char path[], int ttcIndex) const override { std::unique_ptr<SkStreamAsset> stream = SkStream::MakeFromFile(path); - return stream.get() ? this->createFromStream(stream.release(), ttcIndex) : nullptr; + return stream.get() ? this->makeFromStream(std::move(stream), ttcIndex) : nullptr; } - 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 { bool isFixedPitch; SkFontStyle style; SkString name; @@ -432,12 +433,13 @@ protected: return nullptr; } auto data = skstd::make_unique<SkFontData>(std::move(stream), ttcIndex, nullptr, 0); - return new SkTypeface_AndroidStream(std::move(data), style, isFixedPitch, name); + return sk_sp<SkTypeface>(new SkTypeface_AndroidStream(std::move(data), + style, isFixedPitch, name)); } - SkTypeface* onCreateFromStream(SkStreamAsset* s, const SkFontArguments& args) const override { + sk_sp<SkTypeface> onMakeFromStreamArgs(std::unique_ptr<SkStreamAsset> stream, + const SkFontArguments& args) const override { using Scanner = SkTypeface_FreeType::Scanner; - std::unique_ptr<SkStreamAsset> stream(s); bool isFixedPitch; SkFontStyle style; SkString name; @@ -454,10 +456,11 @@ protected: auto data = skstd::make_unique<SkFontData>(std::move(stream), args.getCollectionIndex(), axisValues.get(), axisDefinitions.count()); - return new SkTypeface_AndroidStream(std::move(data), style, isFixedPitch, name); + return sk_sp<SkTypeface>(new SkTypeface_AndroidStream(std::move(data), + style, isFixedPitch, name)); } - SkTypeface* onCreateFromFontData(std::unique_ptr<SkFontData> data) const override { + sk_sp<SkTypeface> onMakeFromFontData(std::unique_ptr<SkFontData> data) const override { SkStreamAsset* stream(data->getStream()); bool isFixedPitch; SkFontStyle style; @@ -465,18 +468,19 @@ protected: if (!fScanner.scanFont(stream, data->getIndex(), &name, &style, &isFixedPitch, nullptr)) { return nullptr; } - return new SkTypeface_AndroidStream(std::move(data), style, isFixedPitch, name); + return sk_sp<SkTypeface>(new SkTypeface_AndroidStream(std::move(data), + style, isFixedPitch, name)); } - SkTypeface* onLegacyCreateTypeface(const char familyName[], SkFontStyle style) const override { + sk_sp<SkTypeface> onLegacyMakeTypeface(const char familyName[], SkFontStyle style) const override { if (familyName) { // On Android, we must return nullptr when we can't find the requested // named typeface so that the system/app can provide their own recovery // mechanism. On other platforms we'd provide a typeface from the // default family instead. - return this->onMatchFamilyStyle(familyName, style); + return sk_sp<SkTypeface>(this->onMatchFamilyStyle(familyName, style)); } - return fDefaultStyleSet->matchStyle(style); + return sk_sp<SkTypeface>(fDefaultStyleSet->matchStyle(style)); } |