Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(233)

Unified Diff: cc/playback/image_hijack_canvas.cc

Issue 1900953004: Switch DrawImage to sk_sp<> (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Florin's nit Created 4 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: cc/playback/image_hijack_canvas.cc
diff --git a/cc/playback/image_hijack_canvas.cc b/cc/playback/image_hijack_canvas.cc
index d0c5c5c72b519bfdeada973b1fedfdcfee6f3dd9..f0fc139ed6d32b821141bdcdc41c368e2e498a1b 100644
--- a/cc/playback/image_hijack_canvas.cc
+++ b/cc/playback/image_hijack_canvas.cc
@@ -20,18 +20,18 @@ SkIRect RoundOutRect(const SkRect& rect) {
class ScopedDecodedImageLock {
public:
ScopedDecodedImageLock(ImageDecodeController* image_decode_controller,
- const SkImage* image,
+ sk_sp<const SkImage> image,
const SkRect& src_rect,
const SkMatrix& matrix,
const SkPaint* paint)
: image_decode_controller_(image_decode_controller),
- draw_image_(image,
+ draw_image_(std::move(image),
RoundOutRect(src_rect),
paint ? paint->getFilterQuality() : kNone_SkFilterQuality,
matrix),
decoded_draw_image_(
image_decode_controller_->GetDecodedImageForDraw(draw_image_)) {
- DCHECK(image->isLazyGenerated());
+ DCHECK(draw_image_.image()->isLazyGenerated());
if (paint)
decoded_paint_.set(*paint)->setFilterQuality(
decoded_draw_image_.filter_quality());
@@ -82,7 +82,7 @@ void ImageHijackCanvas::onDrawImage(const SkImage* image,
SkMatrix ctm = getTotalMatrix();
ScopedDecodedImageLock scoped_lock(
- image_decode_controller_, image,
+ image_decode_controller_, sk_ref_sp(image),
SkRect::MakeIWH(image->width(), image->height()), ctm, paint);
const DecodedDrawImage& decoded_image = scoped_lock.decoded_image();
if (!decoded_image.image())
@@ -98,7 +98,7 @@ void ImageHijackCanvas::onDrawImage(const SkImage* image,
SkNWayCanvas::scale(1.f / (decoded_image.scale_adjustment().width()),
1.f / (decoded_image.scale_adjustment().height()));
}
- SkNWayCanvas::onDrawImage(decoded_image.image(), x, y, decoded_paint);
+ SkNWayCanvas::onDrawImage(decoded_image.image().get(), x, y, decoded_paint);
if (need_scale)
SkNWayCanvas::restore();
}
@@ -122,8 +122,8 @@ void ImageHijackCanvas::onDrawImageRect(const SkImage* image,
matrix.setRectToRect(*src, dst, SkMatrix::kFill_ScaleToFit);
matrix.postConcat(getTotalMatrix());
- ScopedDecodedImageLock scoped_lock(image_decode_controller_, image, *src,
- matrix, paint);
+ ScopedDecodedImageLock scoped_lock(image_decode_controller_, sk_ref_sp(image),
+ *src, matrix, paint);
const DecodedDrawImage& decoded_image = scoped_lock.decoded_image();
if (!decoded_image.image())
return;
@@ -140,7 +140,7 @@ void ImageHijackCanvas::onDrawImageRect(const SkImage* image,
adjusted_src.x() * x_scale, adjusted_src.y() * y_scale,
adjusted_src.width() * x_scale, adjusted_src.height() * y_scale);
}
- SkNWayCanvas::onDrawImageRect(decoded_image.image(), &adjusted_src, dst,
+ SkNWayCanvas::onDrawImageRect(decoded_image.image().get(), &adjusted_src, dst,
decoded_paint, constraint);
}

Powered by Google App Engine
This is Rietveld 408576698