aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/core/SkFontDescriptor.h
diff options
context:
space:
mode:
authorGravatar bungeman <bungeman@google.com>2016-09-15 10:57:38 -0700
committerGravatar Commit bot <commit-bot@chromium.org>2016-09-15 10:57:39 -0700
commit606add3dfb2f6d1dc3ee4921876e7c9fa01643f9 (patch)
treef358bd464a80b6739601ef2c653ce78c532f3a7c /src/core/SkFontDescriptor.h
parenta846c7223c531a634a549e7e6ed7d28eeec95bef (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.h21
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;
};