| 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);
|
| }
|
|
|