Index: src/ports/SkFontHost_mac.cpp |
diff --git a/src/ports/SkFontHost_mac.cpp b/src/ports/SkFontHost_mac.cpp |
index 7d1ef750bd5d3f74336fe7e0a14d25c942103f53..0c2e5c26281851030e53f41930f3406722310c90 100644 |
--- a/src/ports/SkFontHost_mac.cpp |
+++ b/src/ports/SkFontHost_mac.cpp |
@@ -28,7 +28,6 @@ |
#include "SkFontDescriptor.h" |
#include "SkFontMgr.h" |
#include "SkGlyph.h" |
-#include "SkMakeUnique.h" |
#include "SkMaskGamma.h" |
#include "SkMathPriv.h" |
#include "SkMutex.h" |
@@ -512,7 +511,7 @@ |
protected: |
int onGetUPEM() const override; |
SkStreamAsset* onOpenStream(int* ttcIndex) const override; |
- std::unique_ptr<SkFontData> onMakeFontData() const override; |
+ SkFontData* onCreateFontData() const override; |
void onGetFamilyName(SkString* familyName) const override; |
SkTypeface::LocalizedStrings* onCreateFamilyNameIterator() const override; |
int onGetTableTags(SkFontTableTag tags[]) const override; |
@@ -1886,17 +1885,16 @@ |
return true; |
} |
-std::unique_ptr<SkFontData> SkTypeface_Mac::onMakeFontData() const { |
+SkFontData* SkTypeface_Mac::onCreateFontData() const { |
int index; |
- std::unique_ptr<SkStreamAsset> stream(this->onOpenStream(&index)); |
+ SkAutoTDelete<SkStreamAsset> stream(this->onOpenStream(&index)); |
CFIndex cgAxisCount; |
SkAutoSTMalloc<4, SkFixed> axisValues; |
if (get_variations(fFontRef, &cgAxisCount, &axisValues)) { |
- return skstd::make_unique<SkFontData>(std::move(stream), index, |
- axisValues.get(), cgAxisCount); |
- } |
- return skstd::make_unique<SkFontData>(std::move(stream), index, nullptr, 0); |
+ return new SkFontData(stream.release(), index, axisValues.get(), cgAxisCount); |
+ } |
+ return new SkFontData(stream.release(), index, nullptr, 0); |
} |
/////////////////////////////////////////////////////////////////////////////// |
@@ -2369,16 +2367,15 @@ |
} |
SkTypeface* onCreateFromData(SkData* data, int ttcIndex) const override { |
- AutoCFRelease<CGDataProviderRef> pr(SkCreateDataProviderFromData(sk_ref_sp(data))); |
+ AutoCFRelease<CGDataProviderRef> pr(SkCreateDataProviderFromData(data)); |
if (nullptr == pr) { |
return nullptr; |
} |
return create_from_dataProvider(pr); |
} |
- SkTypeface* onCreateFromStream(SkStreamAsset* bareStream, int ttcIndex) const override { |
- std::unique_ptr<SkStreamAsset> stream(bareStream); |
- AutoCFRelease<CGDataProviderRef> pr(SkCreateDataProviderFromStream(std::move(stream))); |
+ SkTypeface* onCreateFromStream(SkStreamAsset* stream, int ttcIndex) const override { |
+ AutoCFRelease<CGDataProviderRef> pr(SkCreateDataProviderFromStream(stream)); |
if (nullptr == pr) { |
return nullptr; |
} |
@@ -2496,9 +2493,8 @@ |
} |
return dict; |
} |
- SkTypeface* onCreateFromStream(SkStreamAsset* bs, const FontParameters& params) const override { |
- std::unique_ptr<SkStreamAsset> s(bs); |
- AutoCFRelease<CGDataProviderRef> provider(SkCreateDataProviderFromStream(std::move(s))); |
+ SkTypeface* onCreateFromStream(SkStreamAsset* s, const FontParameters& params) const override { |
+ AutoCFRelease<CGDataProviderRef> provider(SkCreateDataProviderFromStream(s)); |
if (nullptr == provider) { |
return nullptr; |
} |
@@ -2578,9 +2574,10 @@ |
} |
return dict; |
} |
- SkTypeface* onCreateFromFontData(std::unique_ptr<SkFontData> fontData) const override { |
- AutoCFRelease<CGDataProviderRef> provider( |
- SkCreateDataProviderFromStream(fontData->detachStream())); |
+ SkTypeface* onCreateFromFontData(SkFontData* data) const override { |
+ SkAutoTDelete<SkFontData> fontData(data); |
+ SkStreamAsset* stream = fontData->detachStream(); |
+ AutoCFRelease<CGDataProviderRef> provider(SkCreateDataProviderFromStream(stream)); |
if (nullptr == provider) { |
return nullptr; |
} |
@@ -2589,7 +2586,7 @@ |
return nullptr; |
} |
- AutoCFRelease<CFDictionaryRef> cgVariations(get_axes(cg, fontData.get())); |
+ AutoCFRelease<CFDictionaryRef> cgVariations(get_axes(cg, fontData)); |
// The CGFontRef returned by CGFontCreateCopyWithVariations when the passed CGFontRef was |
// created from a data provider does not appear to have any ownership of the underlying |
// data. The original CGFontRef must be kept alive until the copy will no longer be used. |