Index: src/codec/SkCodec_libpng.cpp |
diff --git a/src/codec/SkCodec_libpng.cpp b/src/codec/SkCodec_libpng.cpp |
index 8f2bdd35a00da5760e8284e3c4bf36d89e304e07..dce6d318c4344634500927793e20fc20332964bf 100644 |
--- a/src/codec/SkCodec_libpng.cpp |
+++ b/src/codec/SkCodec_libpng.cpp |
@@ -417,7 +417,11 @@ SkCodec::Result SkPngCodec::initializeSwizzler(const SkImageInfo& requestedInfo, |
SkCodec::Result SkPngCodec::onGetPixels(const SkImageInfo& requestedInfo, void* dst, |
size_t rowBytes, const Options& options, |
SkPMColor ctable[], int* ctableCount) { |
- if (!this->rewindIfNeeded()) { |
+ SkCodec::RewindState rewindState = this->rewindIfNeeded(); |
+ if (rewindState == kCouldNotRewind_RewindState) { |
+ return kCouldNotRewind; |
+ } else if (rewindState == kRewound_RewindState) { |
+ // TODO(scroggo): handle rewinds |
return kCouldNotRewind; |
} |
if (requestedInfo.dimensions() != this->getInfo().dimensions()) { |