From 9bde31e95ddd82a4a923275bb01265740407dab1 Mon Sep 17 00:00:00 2001 From: sugoi Date: Thu, 30 Oct 2014 14:05:14 -0700 Subject: Trying to be consistent when members are allowed to be NULL Got a few crashes running the fuzzer locally, all related to handling NULL members/parameters in an inconsistent way. BUG=skia: Review URL: https://codereview.chromium.org/675013003 --- src/effects/SkColorFilterImageFilter.cpp | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) (limited to 'src/effects/SkColorFilterImageFilter.cpp') diff --git a/src/effects/SkColorFilterImageFilter.cpp b/src/effects/SkColorFilterImageFilter.cpp index 2a8df5c672..806dd5dd01 100755 --- a/src/effects/SkColorFilterImageFilter.cpp +++ b/src/effects/SkColorFilterImageFilter.cpp @@ -60,6 +60,9 @@ bool matrix_needs_clamping(SkScalar matrix[20]) { SkColorFilterImageFilter* SkColorFilterImageFilter::Create(SkColorFilter* cf, SkImageFilter* input, const CropRect* cropRect, uint32_t uniqueID) { SkASSERT(cf); + if (NULL == cf) { + return NULL; + } SkScalar colorMatrix[20], inputMatrix[20]; SkColorFilter* inputColorFilter; if (input && cf->asColorMatrix(colorMatrix) @@ -78,9 +81,7 @@ SkColorFilterImageFilter* SkColorFilterImageFilter::Create(SkColorFilter* cf, SkColorFilterImageFilter::SkColorFilterImageFilter(SkColorFilter* cf, SkImageFilter* input, const CropRect* cropRect, uint32_t uniqueID) - : INHERITED(1, &input, cropRect, uniqueID), fColorFilter(cf) { - SkASSERT(cf); - SkSafeRef(cf); + : INHERITED(1, &input, cropRect, uniqueID), fColorFilter(SkRef(cf)) { } #ifdef SK_SUPPORT_LEGACY_DEEPFLATTENING @@ -102,7 +103,7 @@ void SkColorFilterImageFilter::flatten(SkWriteBuffer& buffer) const { } SkColorFilterImageFilter::~SkColorFilterImageFilter() { - SkSafeUnref(fColorFilter); + fColorFilter->unref(); } bool SkColorFilterImageFilter::onFilterImage(Proxy* proxy, const SkBitmap& source, -- cgit v1.2.3