| Index: src/effects/SkColorFilterImageFilter.cpp
 | 
| diff --git a/src/effects/SkColorFilterImageFilter.cpp b/src/effects/SkColorFilterImageFilter.cpp
 | 
| index a93997fabd9eca4d42a8028d533d86ec79e6fee2..1e2cdacb97ef5eab26c8e8089b1ade73856062af 100644
 | 
| --- a/src/effects/SkColorFilterImageFilter.cpp
 | 
| +++ b/src/effects/SkColorFilterImageFilter.cpp
 | 
| @@ -52,10 +52,11 @@ void SkColorFilterImageFilter::flatten(SkWriteBuffer& buffer) const {
 | 
|      buffer.writeFlattenable(fColorFilter.get());
 | 
|  }
 | 
|  
 | 
| -SkSpecialImage* SkColorFilterImageFilter::onFilterImage(SkSpecialImage* source, const Context& ctx,
 | 
| -                                                        SkIPoint* offset) const {
 | 
| +sk_sp<SkSpecialImage> SkColorFilterImageFilter::onFilterImage(SkSpecialImage* source,
 | 
| +                                                              const Context& ctx,
 | 
| +                                                              SkIPoint* offset) const {
 | 
|      SkIPoint inputOffset = SkIPoint::Make(0, 0);
 | 
| -    SkAutoTUnref<SkSpecialImage> input(this->filterInput(0, source, ctx, &inputOffset));
 | 
| +    sk_sp<SkSpecialImage> input(this->filterInput(0, source, ctx, &inputOffset));
 | 
|      if (!input) {
 | 
|          return nullptr;
 | 
|      }
 | 
| @@ -91,7 +92,7 @@ SkSpecialImage* SkColorFilterImageFilter::onFilterImage(SkSpecialImage* source,
 | 
|  
 | 
|      offset->fX = bounds.fLeft;
 | 
|      offset->fY = bounds.fTop;
 | 
| -    return surf->makeImageSnapshot().release();
 | 
| +    return surf->makeImageSnapshot();
 | 
|  }
 | 
|  
 | 
|  bool SkColorFilterImageFilter::onIsColorFilterNode(SkColorFilter** filter) const {
 | 
| 
 |