Fix DMWriteTask to write PDF files correctly
Previously, it was not rewinding the asset.
Review URL: https://codereview.chromium.org/659793004
diff --git a/dm/DMWriteTask.cpp b/dm/DMWriteTask.cpp
index 819d7e8..35ae2a7 100644
--- a/dm/DMWriteTask.cpp
+++ b/dm/DMWriteTask.cpp
@@ -81,9 +81,13 @@
return get_md5_string(&hasher);
}
+static bool write_asset(SkStreamAsset* input, SkWStream* output) {
+ return input->rewind() && output->writeStream(input, input->getLength());
+}
+
static SkString get_md5(SkStreamAsset* stream) {
SkMD5 hasher;
- hasher.writeStream(stream, stream->getLength());
+ write_asset(stream, &hasher);
return get_md5_string(&hasher);
}
@@ -154,7 +158,7 @@
return this->fail("Can't open file.");
}
- bool ok = fData ? file.writeStream(fData, fData->getLength())
+ bool ok = fData ? write_asset(fData, &file)
: SkImageEncoder::EncodeStream(&file, fBitmap, SkImageEncoder::kPNG_Type, 100);
if (!ok) {
return this->fail("Can't write to file.");