Index: dm/DMSrcSink.cpp |
diff --git a/dm/DMSrcSink.cpp b/dm/DMSrcSink.cpp |
index e0ec5e139ce988d07a8dbfe76a34b0ba2611a279..5eff189fa81b649c06269c223b292c88f93df14c 100644 |
--- a/dm/DMSrcSink.cpp |
+++ b/dm/DMSrcSink.cpp |
@@ -125,12 +125,16 @@ Error BRDSrc::draw(SkCanvas* canvas) const { |
} |
switch (fMode) { |
case kFullImage_Mode: { |
- SkAutoTDelete<SkBitmap> bitmap(brd->decodeRegion(0, 0, width, height, fSampleSize, |
- colorType)); |
- if (nullptr == bitmap.get() || colorType != bitmap->colorType()) { |
+ SkBitmap bitmap; |
+ if (!brd->decodeRegion(&bitmap, nullptr, SkIRect::MakeXYWH(0, 0, width, height), |
+ fSampleSize, colorType, false)) { |
+ // FIXME: Make this a fatal error. |
scroggo
2015/10/27 18:53:55
Why is this not fatal, and what do you need to do
msarett
2015/10/27 19:06:16
I *think* the only thing that needs to be done is
scroggo
2015/10/27 19:23:37
I'm fine if that is left to a separate change, but
|
+ return Error::Nonfatal("Cannot decode region.\n"); |
+ } |
+ if (colorType != bitmap.colorType()) { |
return Error::Nonfatal("Cannot convert to color type.\n"); |
} |
- canvas->drawBitmap(*bitmap, 0, 0); |
+ canvas->drawBitmap(bitmap, 0, 0); |
return ""; |
} |
case kDivisor_Mode: { |
@@ -178,13 +182,17 @@ Error BRDSrc::draw(SkCanvas* canvas) const { |
const int decodeTop = top - unscaledBorder; |
const uint32_t decodeWidth = subsetWidth + unscaledBorder * 2; |
const uint32_t decodeHeight = subsetHeight + unscaledBorder * 2; |
- SkAutoTDelete<SkBitmap> bitmap(brd->decodeRegion(decodeLeft, |
- decodeTop, decodeWidth, decodeHeight, fSampleSize, colorType)); |
- if (nullptr == bitmap.get() || colorType != bitmap->colorType()) { |
+ SkBitmap bitmap; |
+ if (!brd->decodeRegion(&bitmap, nullptr, SkIRect::MakeXYWH(decodeLeft, |
+ decodeTop, decodeWidth, decodeHeight), fSampleSize, colorType, false)) { |
+ // FIXME: Make this a fatal error. |
+ return Error::Nonfatal("Cannot not decode region.\n"); |
+ } |
+ if (colorType != bitmap.colorType()) { |
return Error::Nonfatal("Cannot convert to color type.\n"); |
} |
- canvas->drawBitmapRect(*bitmap, |
+ canvas->drawBitmapRect(bitmap, |
SkRect::MakeXYWH((SkScalar) scaledBorder, (SkScalar) scaledBorder, |
(SkScalar) (subsetWidth / fSampleSize), |
(SkScalar) (subsetHeight / fSampleSize)), |