Index: skia/ext/platform_canvas.cc |
diff --git a/skia/ext/platform_canvas.cc b/skia/ext/platform_canvas.cc |
index 461dba4e71b740bc5ac0a76424c26408472c579a..6a2548100bc708eeec2c7df7aaf0075c79fd6477 100644 |
--- a/skia/ext/platform_canvas.cc |
+++ b/skia/ext/platform_canvas.cc |
@@ -54,7 +54,9 @@ void MakeOpaque(SkCanvas* canvas, int x, int y, int width, int height) { |
// so we don't draw anything on a device that ignores xfermodes |
paint.setColor(0); |
// install our custom mode |
- paint.setXfermode(new SkProcXfermode(MakeOpaqueXfermodeProc))->unref(); |
+ skia::RefPtr<SkProcXfermode> xfermode = |
+ skia::AdoptRef(new SkProcXfermode(MakeOpaqueXfermodeProc)); |
+ paint.setXfermode(xfermode.get()); |
canvas->drawRect(rect, paint); |
} |
@@ -62,14 +64,13 @@ size_t PlatformCanvasStrideForWidth(unsigned width) { |
return 4 * width; |
} |
-SkCanvas* CreateCanvas(SkDevice* device, OnFailureType failureType) { |
+SkCanvas* CreateCanvas(const skia::RefPtr<SkDevice>& device, OnFailureType failureType) { |
if (!device) { |
if (CRASH_ON_FAILURE == failureType) |
SK_CRASH(); |
return NULL; |
} |
- SkAutoUnref aur(device); |
- return new SkCanvas(device); |
+ return new SkCanvas(device.get()); |
} |
PlatformBitmap::PlatformBitmap() : surface_(0), platform_extra_(0) {} |