Don't leak the shader by reffing twice in SkRectShaderImageFilter.
authormtklein <mtklein@chromium.org>
Fri, 22 Aug 2014 20:42:56 +0000 (13:42 -0700)
committerCommit bot <commit-bot@chromium.org>
Fri, 22 Aug 2014 20:42:56 +0000 (13:42 -0700)
BUG=skia:
R=bsalomon@google.com, mtklein@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/501563002

src/effects/SkRectShaderImageFilter.cpp

index fe0be12..be3c23c 100644 (file)
@@ -44,7 +44,8 @@ SkRectShaderImageFilter::SkRectShaderImageFilter(SkReadBuffer& buffer)
 
 SkFlattenable* SkRectShaderImageFilter::CreateProc(SkReadBuffer& buffer) {
     SK_IMAGEFILTER_UNFLATTEN_COMMON(common, 0);
-    return Create(buffer.readShader(), &common.cropRect());
+    SkAutoTUnref<SkShader> shader(buffer.readShader());
+    return Create(shader.get(), &common.cropRect());
 }
 
 void SkRectShaderImageFilter::flatten(SkWriteBuffer& buffer) const {