Index: src/core/SkPicturePlayback.cpp |
diff --git a/src/core/SkPicturePlayback.cpp b/src/core/SkPicturePlayback.cpp |
index 2ffb6c20d1b993ce8830462f54623c94b93050f5..1aa4712d4f5699cf1307e1ece2fd18b54e25e56e 100644 |
--- a/src/core/SkPicturePlayback.cpp |
+++ b/src/core/SkPicturePlayback.cpp |
@@ -82,7 +82,7 @@ void get_text(SkReadBuffer* reader, TextContainer* text) { |
void SkPicturePlayback::draw(SkCanvas* canvas, |
SkPicture::AbortCallback* callback, |
- const SkReadBuffer* buffer) { |
+ SkReadBuffer* buffer) { |
AutoResetOpID aroi(this); |
SkASSERT(0 == fCurOffset); |
@@ -114,6 +114,11 @@ void SkPicturePlayback::draw(SkCanvas* canvas, |
this->handleOp(reader, op, size, canvas, initialMatrix); |
} |
+ |
+ // need to propagate invalid state to the parent reader |
+ if (buffer) { |
+ buffer->validate(reader->isValid()); |
+ } |
} |
void SkPicturePlayback::handleOp(SkReadBuffer* reader, |