Chromium Code Reviews| Index: src/effects/SkRectShaderImageFilter.cpp |
| diff --git a/src/effects/SkRectShaderImageFilter.cpp b/src/effects/SkRectShaderImageFilter.cpp |
| index fb34ed0007152f124ae557a5567aad4effa3bed5..dd242be27c727ecf025af3952ba70a854d37ced9 100644 |
| --- a/src/effects/SkRectShaderImageFilter.cpp |
| +++ b/src/effects/SkRectShaderImageFilter.cpp |
| @@ -20,20 +20,20 @@ SkRectShaderImageFilter* SkRectShaderImageFilter::Create(SkShader* s, const SkRe |
| flags = 0x0; |
| } |
| CropRect cropRect(rect, flags); |
| - return SkNEW_ARGS(SkRectShaderImageFilter, (s, &cropRect)); |
| + return s ? SkNEW_ARGS(SkRectShaderImageFilter, (s, &cropRect)) : NULL; |
| } |
| SkRectShaderImageFilter* SkRectShaderImageFilter::Create(SkShader* s, const CropRect* cropRect, uint32_t uniqueID) { |
| SkASSERT(s); |
| - return SkNEW_ARGS(SkRectShaderImageFilter, (s, cropRect, uniqueID)); |
| + return s ? SkNEW_ARGS(SkRectShaderImageFilter, (s, cropRect, uniqueID)) : NULL; |
| } |
| SkRectShaderImageFilter::SkRectShaderImageFilter(SkShader* s, const CropRect* cropRect, |
| uint32_t uniqueID) |
| : INHERITED(0, NULL, cropRect, uniqueID) |
| , fShader(s) { |
|
reed1
2014/10/29 19:55:00
suggestion nit: , fShader(SkRef(s)) {
|
| - SkASSERT(s); |
| - s->ref(); |
| + SkASSERT(fShader); |
| + fShader->ref(); |
| } |
| #ifdef SK_SUPPORT_LEGACY_DEEPFLATTENING |
| @@ -55,7 +55,7 @@ void SkRectShaderImageFilter::flatten(SkWriteBuffer& buffer) const { |
| } |
| SkRectShaderImageFilter::~SkRectShaderImageFilter() { |
| - SkSafeUnref(fShader); |
| + fShader->unref(); |
| } |
| bool SkRectShaderImageFilter::onFilterImage(Proxy* proxy, |
| @@ -78,7 +78,7 @@ bool SkRectShaderImageFilter::onFilterImage(Proxy* proxy, |
| SkPaint paint; |
| SkMatrix matrix(ctx.ctm()); |
| matrix.postTranslate(SkIntToScalar(-bounds.left()), SkIntToScalar(-bounds.top())); |
| - paint.setShader(SkShader::CreateLocalMatrixShader(fShader, matrix))->unref(); |
| + SkSafeUnref(paint.setShader(SkShader::CreateLocalMatrixShader(fShader, matrix))); |
| SkRect rect = SkRect::MakeWH(SkIntToScalar(bounds.width()), SkIntToScalar(bounds.height())); |
| canvas.drawRect(rect, paint); |