Fix bug in sampled decodes
authormsarett <msarett@google.com>
Thu, 5 Nov 2015 19:19:29 +0000 (11:19 -0800)
committerCommit bot <commit-bot@chromium.org>
Thu, 5 Nov 2015 19:19:29 +0000 (11:19 -0800)
BUG=skia:

Review URL: https://codereview.chromium.org/1417993006

src/codec/SkSampledCodec.cpp

index 5302149..d5fbd0f 100644 (file)
@@ -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);
             }