diff options
Diffstat (limited to 'dm/DMSrcSink.cpp')
-rw-r--r-- | dm/DMSrcSink.cpp | 19 |
1 files changed, 10 insertions, 9 deletions
diff --git a/dm/DMSrcSink.cpp b/dm/DMSrcSink.cpp index c89ffd1b71..4598a4894b 100644 --- a/dm/DMSrcSink.cpp +++ b/dm/DMSrcSink.cpp @@ -331,15 +331,16 @@ Error CodecSrc::draw(SkCanvas* canvas) const { } // Skip a stripe - const int linesToSkip = SkTMax(0, SkTMin(stripeHeight, - height - (i + 1) * stripeHeight)); - result = decoder->skipScanlines(linesToSkip); - switch (result) { - case SkImageGenerator::kSuccess: - case SkImageGenerator::kIncompleteInput: - break; - default: - return SkStringPrintf("Cannot skip scanlines for %s.", fPath.c_str()); + const int linesToSkip = SkTMin(stripeHeight, height - (i + 1) * stripeHeight); + if (linesToSkip > 0) { + result = decoder->skipScanlines(linesToSkip); + switch (result) { + case SkImageGenerator::kSuccess: + case SkImageGenerator::kIncompleteInput: + break; + default: + return SkStringPrintf("Cannot skip scanlines for %s.", fPath.c_str()); + } } } canvas->drawBitmap(bitmap, 0, 0); |