SkStream: DynamicMemoryWStream gets writeToAndReset
This is similar to copyToAndReset().
Also use this in SkPDF, for minor memory savings:
Single-threaded DM's peak RSS drops from 239MB
to 228MB.
Change-Id: I352a980e6dd54eb05d74cd057bd50e02312753b0
Reviewed-on: https://skia-review.googlesource.com/17714
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Hal Canary <halcanary@google.com>
diff --git a/include/core/SkStream.h b/include/core/SkStream.h
index b4875ad..01fd82a 100644
--- a/include/core/SkStream.h
+++ b/include/core/SkStream.h
@@ -384,11 +384,14 @@
/** More efficient version of read(dst, 0, bytesWritten()). */
void copyTo(void* dst) const;
- void writeToStream(SkWStream* dst) const;
+ bool writeToStream(SkWStream* dst) const;
/** Equivalent to copyTo() followed by reset(), but may save memory use. */
void copyToAndReset(void* dst);
+ /** Equivalent to writeToStream() followed by reset(), but may save memory use. */
+ bool writeToAndReset(SkWStream* dst);
+
/** Return the contents as SkData, and then reset the stream. */
sk_sp<SkData> detachAsData();