aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/effects/SkColorFilterImageFilter.cpp
diff options
context:
space:
mode:
authorGravatar sugoi <sugoi@chromium.org>2014-10-30 14:05:14 -0700
committerGravatar Commit bot <commit-bot@chromium.org>2014-10-30 14:05:15 -0700
commit9bde31e95ddd82a4a923275bb01265740407dab1 (patch)
tree217a431fce925cb4ad2d50167bf502ce6f52144e /src/effects/SkColorFilterImageFilter.cpp
parente228ba3e5cab59034875ea6599527aab30f04623 (diff)
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
Diffstat (limited to 'src/effects/SkColorFilterImageFilter.cpp')
-rwxr-xr-xsrc/effects/SkColorFilterImageFilter.cpp9
1 files changed, 5 insertions, 4 deletions
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,