aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/core/SkStream.cpp
diff options
context:
space:
mode:
authorGravatar reed <reed@google.com>2016-09-12 12:01:44 -0700
committerGravatar Commit bot <commit-bot@chromium.org>2016-09-12 12:01:44 -0700
commit42943c8aa9c611c18ad0f1a30a27669f3d82239c (patch)
treedeff0bbc59dd92559191c188d73f97b4f9c580aa /src/core/SkStream.cpp
parent09524ae42998ece3a8e7973064ab286646511b31 (diff)
change SkStreams to work with sk_sp<SkData> instead of SkData*
Diffstat (limited to 'src/core/SkStream.cpp')
-rw-r--r--src/core/SkStream.cpp23
1 files changed, 13 insertions, 10 deletions
diff --git a/src/core/SkStream.cpp b/src/core/SkStream.cpp
index e2b3e6454c..48eb92cae5 100644
--- a/src/core/SkStream.cpp
+++ b/src/core/SkStream.cpp
@@ -306,6 +306,7 @@ SkMemoryStream::SkMemoryStream(sk_sp<SkData> data) : fData(std::move(data)) {
fOffset = 0;
}
+#ifdef SK_SUPPORT_LEGACY_STREAM_DATA
SkMemoryStream::SkMemoryStream(SkData* data) {
if (nullptr == data) {
fData = SkData::MakeEmpty();
@@ -314,6 +315,7 @@ SkMemoryStream::SkMemoryStream(SkData* data) {
}
fOffset = 0;
}
+#endif
void SkMemoryStream::setMemoryOwned(const void* src, size_t size) {
fData = SkData::MakeFromMalloc(src, size);
@@ -325,18 +327,13 @@ void SkMemoryStream::setMemory(const void* src, size_t size, bool copyData) {
fOffset = 0;
}
-SkData* SkMemoryStream::copyToData() const {
- return SkSafeRef(fData.get());
-}
-
-SkData* SkMemoryStream::setData(SkData* data) {
+void SkMemoryStream::setData(sk_sp<SkData> data) {
if (nullptr == data) {
fData = SkData::MakeEmpty();
} else {
- fData = sk_ref_sp(data);
+ fData = data;
}
fOffset = 0;
- return data;
}
void SkMemoryStream::skipToAlign4() {
@@ -642,14 +639,20 @@ void SkDynamicMemoryWStream::padToAlign4()
write(&zero, padBytes);
}
-SkData* SkDynamicMemoryWStream::copyToData() const {
+sk_sp<SkData> SkDynamicMemoryWStream::snapshotAsData() const {
if (nullptr == fCopy) {
auto data = SkData::MakeUninitialized(fBytesWritten);
// be sure to call copyTo() before we assign to fCopy
this->copyTo(data->writable_data());
fCopy = std::move(data);
}
- return SkRef(fCopy.get());
+ return fCopy;
+}
+
+sk_sp<SkData> SkDynamicMemoryWStream::detachAsData() {
+ sk_sp<SkData> data = this->snapshotAsData();
+ this->reset();
+ return data;
}
void SkDynamicMemoryWStream::invalidateCopy() {
@@ -882,7 +885,7 @@ sk_sp<SkData> SkCopyStreamToData(SkStream* stream) {
size_t bytesRead = stream->read(buffer, bufferSize);
tempStream.write(buffer, bytesRead);
} while (!stream->isAtEnd());
- return sk_sp<SkData>(tempStream.copyToData());
+ return tempStream.detachAsData();
}
bool SkStreamCopy(SkWStream* out, SkStream* input) {