diff options
Diffstat (limited to 'src/core')
-rw-r--r-- | src/core/SkFontDescriptor.cpp | 2 | ||||
-rw-r--r-- | src/core/SkStream.cpp | 12 |
2 files changed, 13 insertions, 1 deletions
diff --git a/src/core/SkFontDescriptor.cpp b/src/core/SkFontDescriptor.cpp index 73ea2058ce..519e8f2fe7 100644 --- a/src/core/SkFontDescriptor.cpp +++ b/src/core/SkFontDescriptor.cpp @@ -108,7 +108,7 @@ bool SkFontDescriptor::Deserialize(SkStream* stream, SkFontDescriptor* result) { sk_sp<SkData> data(SkData::MakeUninitialized(length)); if (stream->read(data->writable_data(), length) == length) { result->fFontData = skstd::make_unique<SkFontData>( - skstd::make_unique<SkMemoryStream>(data), index, axis, axisCount); + SkMemoryStream::Make(std::move(data)), index, axis, axisCount); } else { SkDEBUGFAIL("Could not read font data"); return false; diff --git a/src/core/SkStream.cpp b/src/core/SkStream.cpp index 7bb2079f7f..139a72f7ca 100644 --- a/src/core/SkStream.cpp +++ b/src/core/SkStream.cpp @@ -274,6 +274,18 @@ SkMemoryStream::SkMemoryStream(sk_sp<SkData> data) : fData(std::move(data)) { fOffset = 0; } +std::unique_ptr<SkMemoryStream> SkMemoryStream::MakeCopy(const void* data, size_t length) { + return skstd::make_unique<SkMemoryStream>(data, length, true); +} + +std::unique_ptr<SkMemoryStream> SkMemoryStream::MakeDirect(const void* data, size_t length) { + return skstd::make_unique<SkMemoryStream>(data, length, false); +} + +std::unique_ptr<SkMemoryStream> SkMemoryStream::Make(sk_sp<SkData> data) { + return skstd::make_unique<SkMemoryStream>(std::move(data)); +} + void SkMemoryStream::setMemoryOwned(const void* src, size_t size) { fData = SkData::MakeFromMalloc(src, size); fOffset = 0; |