SkScalar readScalar();
size_t readPackedUInt();
+ /**
+ * Create a new SkData from the stream contents. This balances the call
+ * SkWStream::writeData().
+ */
+ SkData* readData();
+
private:
typedef SkRefCnt INHERITED;
};
}
}
+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()
bool SkWStream::writeData(const SkData* data) {
if (data) {
+ this->write32(data->size());
this->write(data->data(), data->size());
+ } else {
+ this->write32(0);
}
return true;
}