diff options
author | bungeman <bungeman@google.com> | 2016-09-15 10:57:38 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2016-09-15 10:57:39 -0700 |
commit | 606add3dfb2f6d1dc3ee4921876e7c9fa01643f9 (patch) | |
tree | f358bd464a80b6739601ef2c653ce78c532f3a7c /src/core/SkFontDescriptor.h | |
parent | a846c7223c531a634a549e7e6ed7d28eeec95bef (diff) |
Revert of SkFontData to use smart pointers. (patchset #3 id:40001 of https://codereview.chromium.org/2339273002/ )
Reason for revert:
Killing Mac
Original issue's description:
> SkFontData to use smart pointers.
>
> The SkFontData type is not exposed externally, so any method which uses
> it can be updated to use smart pointers without affecting external
> users. Updating this first will make updating the public API much
> easier.
>
> This also updates SkStreamAsset* SkStream::NewFromFile(const char*) to
> std::unique_ptr<SkStreamAsset> SkStream::MakeFromFile(const char*). It
> appears that no one outside Skia is currently using SkStream::NewfromFile
> so this is a good time to update it as well.
>
> GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2339273002
>
> Committed: https://skia.googlesource.com/skia/+/d8c2476a8b1e1e1a1771b17e8dd4db8645914f8c
TBR=mtklein@chromium.org,halcanary@google.com,mtklein@google.com,reed@google.com
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
Review-Url: https://codereview.chromium.org/2343933002
Diffstat (limited to 'src/core/SkFontDescriptor.h')
-rw-r--r-- | src/core/SkFontDescriptor.h | 21 |
1 files changed, 11 insertions, 10 deletions
diff --git a/src/core/SkFontDescriptor.h b/src/core/SkFontDescriptor.h index de1462177b..cb8d2f4f03 100644 --- a/src/core/SkFontDescriptor.h +++ b/src/core/SkFontDescriptor.h @@ -15,9 +15,9 @@ class SkFontData { public: - /** Makes a copy of the data in 'axis'. */ - SkFontData(std::unique_ptr<SkStreamAsset> stream, int index, const SkFixed axis[],int axisCount) - : fStream(std::move(stream)), fIndex(index), fAxisCount(axisCount), fAxis(axisCount) + /** This takes ownership of 'stream'. Makes a copy of the data in 'axis'. */ + SkFontData(SkStreamAsset* stream, int index, const SkFixed axis[], int axisCount) + : fStream(stream), fIndex(index), fAxisCount(axisCount), fAxis(axisCount) { for (int i = 0; i < axisCount; ++i) { fAxis[i] = axis[i]; @@ -34,15 +34,15 @@ public: } } bool hasStream() const { return fStream.get() != nullptr; } - std::unique_ptr<SkStreamAsset> detachStream() { return std::move(fStream); } + SkStreamAsset* duplicateStream() const { return fStream->duplicate(); } + SkStreamAsset* detachStream() { return fStream.release(); } SkStreamAsset* getStream() { return fStream.get(); } - SkStreamAsset const* getStream() const { return fStream.get(); } int getIndex() const { return fIndex; } int getAxisCount() const { return fAxisCount; } const SkFixed* getAxis() const { return fAxis.get(); } private: - std::unique_ptr<SkStreamAsset> fStream; + SkAutoTDelete<SkStreamAsset> fStream; int fIndex; int fAxisCount; SkAutoSTMalloc<4, SkFixed> fAxis; @@ -63,19 +63,20 @@ public: const char* getFullName() const { return fFullName.c_str(); } const char* getPostscriptName() const { return fPostscriptName.c_str(); } bool hasFontData() const { return fFontData.get() != nullptr; } - std::unique_ptr<SkFontData> detachFontData() { return std::move(fFontData); } + SkFontData* detachFontData() { return fFontData.release(); } void setFamilyName(const char* name) { fFamilyName.set(name); } void setFullName(const char* name) { fFullName.set(name); } void setPostscriptName(const char* name) { fPostscriptName.set(name); } - /** Set the font data only if it is necessary for serialization. */ - void setFontData(std::unique_ptr<SkFontData> data) { fFontData = std::move(data); } + /** Set the font data only if it is necessary for serialization. + * This method takes ownership of the font data. */ + void setFontData(SkFontData* data) { fFontData.reset(data); } private: SkString fFamilyName; SkString fFullName; SkString fPostscriptName; - std::unique_ptr<SkFontData> fFontData; + SkAutoTDelete<SkFontData> fFontData; SkFontStyle fStyle; }; |