Make kInvalidConversion a fatal failure in DMSrcSink
We just need to abort early on tests that we know
are invalid conversions.
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1704433003
Review URL: https://codereview.chromium.org/1704433003
diff --git a/dm/DMSrcSink.cpp b/dm/DMSrcSink.cpp
index 0e2d307..e5d18cd 100644
--- a/dm/DMSrcSink.cpp
+++ b/dm/DMSrcSink.cpp
@@ -321,12 +321,17 @@
*decodeInfo = decodeInfo->makeColorType(kIndex_8_SkColorType);
break;
case CodecSrc::kGrayscale_Always_DstColorType:
- if (kRGB_565_SkColorType == canvasColorType) {
+ if (kRGB_565_SkColorType == canvasColorType ||
+ kOpaque_SkAlphaType != decodeInfo->alphaType()) {
return false;
}
*decodeInfo = decodeInfo->makeColorType(kGray_8_SkColorType);
break;
default:
+ if (kRGB_565_SkColorType == canvasColorType &&
+ kOpaque_SkAlphaType != decodeInfo->alphaType()) {
+ return false;
+ }
*decodeInfo = decodeInfo->makeColorType(canvasColorType);
break;
}
@@ -428,8 +433,6 @@
// available.
case SkCodec::kIncompleteInput:
break;
- case SkCodec::kInvalidConversion:
- return Error::Nonfatal("Incompatible colortype conversion");
default:
// Everything else is considered a failure.
return SkStringPrintf("Couldn't getPixels %s.", fPath.c_str());
@@ -700,8 +703,6 @@
case SkCodec::kSuccess:
case SkCodec::kIncompleteInput:
break;
- case SkCodec::kInvalidConversion:
- return Error::Nonfatal("Cannot convert to requested color type.");
default:
return SkStringPrintf("Couldn't getPixels %s.", fPath.c_str());
}