aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/ports/SkFontHost_win.cpp
diff options
context:
space:
mode:
authorGravatar Mike Reed <reed@google.com>2017-09-26 09:46:08 -0400
committerGravatar Skia Commit-Bot <skia-commit-bot@chromium.org>2017-09-26 14:05:18 +0000
commit592273965a7fc7fc403252e420d15f6555b8f25d (patch)
tree9d5f6fa74228b81278bc97af1dc78d9587d63c08 /src/ports/SkFontHost_win.cpp
parentf6f7cf60985d8e109cc136f25e2a3c3383ca05ea (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/SkFontHost_win.cpp')
-rw-r--r--src/ports/SkFontHost_win.cpp26
1 files changed, 14 insertions, 12 deletions
diff --git a/src/ports/SkFontHost_win.cpp b/src/ports/SkFontHost_win.cpp
index 42785e9f1b..5cd02a4f73 100644
--- a/src/ports/SkFontHost_win.cpp
+++ b/src/ports/SkFontHost_win.cpp
@@ -1894,7 +1894,7 @@ static HANDLE activate_font(SkData* fontData) {
}
// Does not affect ownership of stream.
-static SkTypeface* create_from_stream(SkStreamAsset* stream) {
+static sk_sp<SkTypeface> create_from_stream(std::unique_ptr<SkStreamAsset> stream) {
// Create a unique and unpredictable font name.
// Avoids collisions and access from CSS.
char familyName[BASE64_GUID_ID_LEN];
@@ -1904,7 +1904,7 @@ static SkTypeface* create_from_stream(SkStreamAsset* stream) {
}
// Change the name of the font.
- sk_sp<SkData> rewrittenFontData(SkOTUtils::RenameFont(stream, familyName, familyNameSize-1));
+ sk_sp<SkData> rewrittenFontData(SkOTUtils::RenameFont(stream.get(), familyName, familyNameSize-1));
if (nullptr == rewrittenFontData.get()) {
return nullptr;
}
@@ -1919,7 +1919,7 @@ static SkTypeface* create_from_stream(SkStreamAsset* stream) {
LOGFONT lf;
logfont_for_name(familyName, &lf);
- return SkCreateFontMemResourceTypefaceFromLOGFONT(lf, fontReference);
+ return sk_sp<SkTypeface>(SkCreateFontMemResourceTypefaceFromLOGFONT(lf, fontReference));
}
SkStreamAsset* LogFontTypeface::onOpenStream(int* ttcIndex) const {
@@ -2449,25 +2449,27 @@ protected:
return this->matchFamilyStyle(familyName.c_str(), fontstyle);
}
- 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 {
if (ttcIndex != 0) {
return nullptr;
}
- return create_from_stream(stream.get());
+ return create_from_stream(std::move(stream));
}
- SkTypeface* onCreateFromData(SkData* data, int ttcIndex) const override {
+ sk_sp<SkTypeface> onMakeFromData(sk_sp<SkData> data, int ttcIndex) const override {
// could be in base impl
- return this->createFromStream(new SkMemoryStream(sk_ref_sp(data)), ttcIndex);
+ 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 {
// could be in base impl
- return this->createFromStream(SkStream::MakeFromFile(path).release(), ttcIndex);
+ auto stream = SkStream::MakeFromFile(path);
+ return stream ? this->makeFromStream(std::move(stream), ttcIndex) : nullptr;
}
- SkTypeface* onLegacyCreateTypeface(const char familyName[], SkFontStyle style) const override {
+ sk_sp<SkTypeface> onLegacyMakeTypeface(const char familyName[], SkFontStyle style) const override {
LOGFONT lf;
if (nullptr == familyName) {
lf = get_default_font();
@@ -2477,7 +2479,7 @@ protected:
lf.lfWeight = style.weight();
lf.lfItalic = style.slant() == SkFontStyle::kUpright_Slant ? FALSE : TRUE;
- return SkCreateTypefaceFromLOGFONT(lf);
+ return sk_sp<SkTypeface>(SkCreateTypefaceFromLOGFONT(lf));
}
private: