Index: ui/gfx/canvas.cc |
diff --git a/ui/gfx/canvas.cc b/ui/gfx/canvas.cc |
index 73a7a669700cebcc2891ae9d88ca2d3827b047c3..df386f7da584da4a48cd1b59404d5e455763bb54 100644 |
--- a/ui/gfx/canvas.cc |
+++ b/ui/gfx/canvas.cc |
@@ -28,10 +28,9 @@ |
Canvas::Canvas(const Size& size, float image_scale, bool is_opaque) |
: image_scale_(image_scale) { |
Size pixel_size = ScaleToCeiledSize(size, image_scale); |
- canvas_owner_ = skia::CreatePlatformCanvas(pixel_size.width(), |
- pixel_size.height(), is_opaque); |
- canvas_ = canvas_owner_.get(); |
- |
+ canvas_ = sk_sp<SkCanvas>(skia::CreatePlatformCanvas(pixel_size.width(), |
+ pixel_size.height(), |
+ is_opaque)); |
#if !defined(USE_CAIRO) |
// skia::PlatformCanvas instances are initialized to 0 by Cairo, but |
// uninitialized on other platforms. |
@@ -45,11 +44,10 @@ |
Canvas::Canvas() |
: image_scale_(1.f), |
- canvas_owner_(skia::CreatePlatformCanvas(0, 0, false)), |
- canvas_(canvas_owner_.get()) {} |
- |
-Canvas::Canvas(SkCanvas* canvas, float image_scale) |
- : image_scale_(image_scale), canvas_(canvas) { |
+ canvas_(sk_sp<SkCanvas>(skia::CreatePlatformCanvas(0, 0, false))) {} |
+ |
+Canvas::Canvas(sk_sp<SkCanvas> canvas, float image_scale) |
+ : image_scale_(image_scale), canvas_(std::move(canvas)) { |
DCHECK(canvas_); |
} |
@@ -61,10 +59,9 @@ |
bool is_opaque) { |
image_scale_ = image_scale; |
Size pixel_size = ScaleToFlooredSize(size, image_scale); |
- canvas_owner_ = skia::CreatePlatformCanvas(pixel_size.width(), |
- pixel_size.height(), is_opaque); |
- canvas_ = canvas_owner_.get(); |
- |
+ canvas_ = sk_sp<SkCanvas>(skia::CreatePlatformCanvas(pixel_size.width(), |
+ pixel_size.height(), |
+ is_opaque)); |
SkScalar scale_scalar = SkFloatToScalar(image_scale); |
canvas_->scale(scale_scalar, scale_scalar); |
} |