aboutsummaryrefslogtreecommitdiffhomepage
path: root/dm
diff options
context:
space:
mode:
authorGravatar halcanary <halcanary@google.com>2014-10-17 14:36:10 -0700
committerGravatar Commit bot <commit-bot@chromium.org>2014-10-17 14:36:10 -0700
commitdaf36c1524bcfd25416c0f85e288554f369e5090 (patch)
treea7db5d736e0f9bb9b97959eb56f22dbcf7f8e440 /dm
parent3f752205a5d55b47c2d07486736c5e344b45a017 (diff)
Fix DMWriteTask to write PDF files correctly
Previously, it was not rewinding the asset. Review URL: https://codereview.chromium.org/659793004
Diffstat (limited to 'dm')
-rw-r--r--dm/DMWriteTask.cpp8
1 files changed, 6 insertions, 2 deletions
diff --git a/dm/DMWriteTask.cpp b/dm/DMWriteTask.cpp
index 819d7e83df..35ae2a7209 100644
--- a/dm/DMWriteTask.cpp
+++ b/dm/DMWriteTask.cpp
@@ -81,9 +81,13 @@ static SkString get_md5(const void* ptr, size_t len) {
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 @@ void WriteTask::draw() {
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.");