aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/codec/SkCodec_wbmp.cpp
diff options
context:
space:
mode:
authorGravatar scroggo <scroggo@chromium.org>2015-08-12 08:31:44 -0700
committerGravatar Commit bot <commit-bot@chromium.org>2015-08-12 08:31:44 -0700
commitd1bc5746ba9ec86b1ef50aa0d3131adb0e2843f5 (patch)
tree4a48908b556d4c8fde76b7b1b3822034437f9bf6 /src/codec/SkCodec_wbmp.cpp
parent5a4d23508c3ca2c6cbca4e725ce65c0227b3b9ac (diff)
Update CodexTest to test valid_alpha.
Add a static function to CodexTest, which consolidates decoding, comparing to an expected SkCodec::Result, and optionally comparing to a digest. Test decoding non-opaque to opaque (fails) and premul to unpremul/vice versa (succeeds). BUG=skia:3475 Review URL: https://codereview.chromium.org/1277253003
Diffstat (limited to 'src/codec/SkCodec_wbmp.cpp')
-rw-r--r--src/codec/SkCodec_wbmp.cpp8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/codec/SkCodec_wbmp.cpp b/src/codec/SkCodec_wbmp.cpp
index 52535e1f02..6f98294fc6 100644
--- a/src/codec/SkCodec_wbmp.cpp
+++ b/src/codec/SkCodec_wbmp.cpp
@@ -120,6 +120,10 @@ SkCodec::Result SkWbmpCodec::onGetPixels(const SkImageInfo& info,
return kInvalidScale;
}
+ if (!valid_alpha(info.alphaType(), this->getInfo().alphaType())) {
+ return SkCodec::kInvalidConversion;
+ }
+
// Prepare a color table if necessary
setup_color_table(info.colorType(), ctable, ctableCount);
@@ -200,6 +204,10 @@ public:
return SkCodec::kInvalidScale;
}
+ if (!valid_alpha(dstInfo.alphaType(), this->getInfo().alphaType())) {
+ return SkCodec::kInvalidConversion;
+ }
+
// Fill in the color table
setup_color_table(dstInfo.colorType(), inputColorTable, inputColorCount);