diff options
Diffstat (limited to 'src/core/SkStream.cpp')
-rw-r--r-- | src/core/SkStream.cpp | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/src/core/SkStream.cpp b/src/core/SkStream.cpp index c137167fd2..f0e52c7efb 100644 --- a/src/core/SkStream.cpp +++ b/src/core/SkStream.cpp @@ -93,6 +93,17 @@ size_t SkStream::readPackedUInt() { } } +SkData* SkStream::readStream() { + size_t size = this->readU32(); + if (0 == size) { + return SkData::NewEmpty(); + } else { + void* buffer = sk_malloc_throw(size); + stream->read(buffer, size); + return SkData::NewFromMalloc(buffer, size); + } +} + ////////////////////////////////////////////////////////////////////////////////////// SkWStream::~SkWStream() @@ -200,7 +211,10 @@ bool SkWStream::writeStream(SkStream* stream, size_t length) { bool SkWStream::writeData(const SkData* data) { if (data) { + this->write32(data->size()); this->write(data->data(), data->size()); + } else { + this->write32(0); } return true; } |