Index: ui/gfx/canvas.cc |
diff --git a/ui/gfx/canvas.cc b/ui/gfx/canvas.cc |
index 831f4fc4bf47e9e23a22de519336c43beb1871f7..31934f493f7ba166f9af3142d8d101a08d51f07d 100644 |
--- a/ui/gfx/canvas.cc |
+++ b/ui/gfx/canvas.cc |
@@ -140,14 +140,13 @@ void Canvas::DrawDashedRect(const gfx::Rect& rect, SkColor color) { |
// Make a shader for the bitmap with an origin of the box we'll draw. This |
// shader is refcounted and will have an initial refcount of 1. |
- SkShader* shader = SkShader::CreateBitmapShader( |
+ skia::RefPtr<SkShader> shader = SkShader::CreateBitmapShader( |
*dots, SkShader::kRepeat_TileMode, SkShader::kRepeat_TileMode); |
// Assign the shader to the paint & release our reference. The paint will |
// now own the shader and the shader will be destroyed when the paint goes |
// out of scope. |
SkPaint paint; |
- paint.setShader(shader); |
- shader->unref(); |
+ paint.setShader(shader.get()); |
DrawRect(gfx::Rect(rect.x(), rect.y(), rect.width(), 1), paint); |
DrawRect(gfx::Rect(rect.x(), rect.y() + rect.height() - 1, rect.width(), 1), |
@@ -373,16 +372,16 @@ void Canvas::DrawImageInt(const gfx::ImageSkia& image, |
shader_scale.preTranslate(SkIntToScalar(-src_x), SkIntToScalar(-src_y)); |
shader_scale.postTranslate(SkIntToScalar(dest_x), SkIntToScalar(dest_y)); |
- SkShader* shader = gfx::CreateImageRepShader(image_rep, |
- SkShader::kRepeat_TileMode, |
- shader_scale); |
+ skia::RefPtr<SkShader> shader = gfx::CreateImageRepShader( |
+ image_rep, |
+ SkShader::kRepeat_TileMode, |
+ shader_scale); |
// Set up our paint to use the shader & release our reference (now just owned |
// by the paint). |
SkPaint p(paint); |
p.setFilterBitmap(filter); |
- p.setShader(shader); |
- shader->unref(); |
+ p.setShader(shader.get()); |
// The rect will be filled by the bitmap. |
canvas_->drawRect(dest_rect, p); |
@@ -399,12 +398,13 @@ void Canvas::DrawImageInPath(const gfx::ImageSkia& image, |
SkMatrix matrix; |
matrix.setTranslate(SkIntToScalar(x), SkIntToScalar(y)); |
- SkShader* shader = gfx::CreateImageRepShader(image_rep, |
- SkShader::kRepeat_TileMode, matrix); |
+ skia::RefPtr<SkShader> shader = gfx::CreateImageRepShader( |
+ image_rep, |
+ SkShader::kRepeat_TileMode, |
+ matrix); |
SkPaint p(paint); |
- p.setShader(shader); |
- shader->unref(); |
+ p.setShader(shader.get()); |
canvas_->drawPath(path, p); |
} |
@@ -465,14 +465,14 @@ void Canvas::TileImageInt(const gfx::ImageSkia& image, |
shader_scale.preTranslate(SkIntToScalar(-src_x), SkIntToScalar(-src_y)); |
shader_scale.postTranslate(SkIntToScalar(dest_x), SkIntToScalar(dest_y)); |
- SkShader* shader = gfx::CreateImageRepShader(image_rep, |
- SkShader::kRepeat_TileMode, |
- shader_scale); |
+ skia::RefPtr<SkShader> shader = gfx::CreateImageRepShader( |
+ image_rep, |
+ SkShader::kRepeat_TileMode, |
+ shader_scale); |
SkPaint paint; |
- paint.setShader(shader); |
+ paint.setShader(shader.get()); |
paint.setXfermodeMode(SkXfermode::kSrcOver_Mode); |
- shader->unref(); |
SkRect dest_rect = { SkIntToScalar(dest_x), |
SkIntToScalar(dest_y), |