Skip to content

Commit

Permalink
Exit GetBitmap() early if pixel allocation fails.
Browse files Browse the repository at this point in the history
Bug: 971068
Change-Id: I20cdf28af8b98d5475ca38d35c8a9fd7cff04044
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1680945
Reviewed-by: Stephen Chenney <schenney@chromium.org>
Commit-Queue: Aran Gilman <gilmanmh@google.com>
Cr-Commit-Position: refs/heads/master@{#673359}
  • Loading branch information
gilmanmh authored and Commit Bot committed Jun 28, 2019
1 parent 89bb6a5 commit b22587b
Showing 1 changed file with 10 additions and 3 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -95,15 +95,22 @@ bool DarkModeBitmapImageClassifier::GetBitmap(Image& image,
if (!src_rect.Width() || !src_rect.Height())
return false;

DCHECK(bitmap);

SkScalar sx = SkFloatToScalar(src_rect.X());
SkScalar sy = SkFloatToScalar(src_rect.Y());
SkScalar sw = SkFloatToScalar(src_rect.Width());
SkScalar sh = SkFloatToScalar(src_rect.Height());
SkRect src = {sx, sy, sx + sw, sy + sh};
SkRect dest = {0, 0, sw, sh};
bitmap->allocPixels(SkImageInfo::MakeN32(static_cast<int>(src_rect.Width()),
static_cast<int>(src_rect.Height()),
kPremul_SkAlphaType));

if (!bitmap ||
!bitmap->tryAllocPixels(SkImageInfo::MakeN32(
static_cast<int>(src_rect.Width()),
static_cast<int>(src_rect.Height()), kPremul_SkAlphaType))) {
return false;
}

SkCanvas canvas(*bitmap);
canvas.clear(SK_ColorTRANSPARENT);
canvas.drawImageRect(image.PaintImageForCurrentFrame().GetSkImage(), src,
Expand Down

0 comments on commit b22587b

Please sign in to comment.