| Index: src/core/SkCanvas.cpp
|
| diff --git a/src/core/SkCanvas.cpp b/src/core/SkCanvas.cpp
|
| index 2cfe8ae2da8b92e65a12b177eb7ef27dea7268fc..ffdcf9d5de5d54cf97909bcb6de381ed3f2e7379 100644
|
| --- a/src/core/SkCanvas.cpp
|
| +++ b/src/core/SkCanvas.cpp
|
| @@ -207,19 +207,13 @@ struct DeviceCM {
|
| , fClip(conservativeRasterClip)
|
| , fStashedMatrix(stashed)
|
| {
|
| - if (nullptr != device) {
|
| - device->ref();
|
| - device->onAttachToCanvas(canvas);
|
| - }
|
| + SkSafeRef(device);
|
| fDevice = device;
|
| fPaint = paint ? new SkPaint(*paint) : nullptr;
|
| }
|
|
|
| ~DeviceCM() {
|
| - if (fDevice) {
|
| - fDevice->onDetachFromCanvas();
|
| - fDevice->unref();
|
| - }
|
| + SkSafeUnref(fDevice);
|
| delete fPaint;
|
| }
|
|
|
| @@ -684,7 +678,6 @@ SkBaseDevice* SkCanvas::init(SkBaseDevice* device, InitFlags flags) {
|
| if (device) {
|
| // The root device and the canvas should always have the same pixel geometry
|
| SkASSERT(fProps.pixelGeometry() == device->surfaceProps().pixelGeometry());
|
| - device->onAttachToCanvas(this);
|
| fMCRec->fLayer->fDevice = SkRef(device);
|
| fMCRec->fRasterClip.setRect(device->getGlobalBounds());
|
| }
|
|
|