diff options
Diffstat (limited to 'src/codec/SkSampledCodec.cpp')
-rw-r--r-- | src/codec/SkSampledCodec.cpp | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/src/codec/SkSampledCodec.cpp b/src/codec/SkSampledCodec.cpp index 5302149e12..d5fbd0fa52 100644 --- a/src/codec/SkSampledCodec.cpp +++ b/src/codec/SkSampledCodec.cpp @@ -215,11 +215,12 @@ SkCodec::Result SkSampledCodec::sampledDecode(const SkImageInfo& info, void* pix dstHeight, y + 1); return SkCodec::kIncompleteInput; } - int linesToSkip = SkTMin(sampleY - 1, dstHeight - y - 1); - if (!fCodec->skipScanlines(linesToSkip)) { - fCodec->fillIncompleteImage(info, pixels, rowBytes, options.fZeroInitialized, - dstHeight, y + 1); - return SkCodec::kIncompleteInput; + if (y < dstHeight - 1) { + if (!fCodec->skipScanlines(sampleY - 1)) { + fCodec->fillIncompleteImage(info, pixels, rowBytes, + options.fZeroInitialized, dstHeight, y + 1); + return SkCodec::kIncompleteInput; + } } pixelPtr = SkTAddOffset<void>(pixelPtr, rowBytes); } |