Chromium Code Reviews| Index: src/effects/SkBlurMaskFilter.cpp |
| diff --git a/src/effects/SkBlurMaskFilter.cpp b/src/effects/SkBlurMaskFilter.cpp |
| index 5cb98153f0231b539f142c050e820e9d0d1fb0b6..9b3354484b9a02ce5151f65f1557744a7dd84002 100644 |
| --- a/src/effects/SkBlurMaskFilter.cpp |
| +++ b/src/effects/SkBlurMaskFilter.cpp |
| @@ -527,17 +527,18 @@ public: |
| */ |
| static GrEffectRef* Create(GrContext *context, const SkRect& rect, |
| float sigma) { |
| - GrTexture *horizontalScanline, *verticalScanline; |
| + GrTexture *horizontalScanline = NULL, *verticalScanline = NULL; |
| bool createdScanlines = CreateScanlineTextures(context, sigma, |
| SkScalarCeilToInt(rect.width()), |
| SkScalarCeilToInt(rect.height()), |
| &horizontalScanline, &verticalScanline); |
|
robertphillips
2014/01/31 13:33:10
Won't this potentially cause a problem if the hori
humper
2014/01/31 13:51:17
yeah, I'll land a better fix for this once this pa
|
| - if (!createdScanlines) { |
| + SkAutoTUnref<GrTexture> hunref(horizontalScanline), vunref(verticalScanline); |
| + if (!createdScanlines) { |
| return NULL; |
| } |
| AutoEffectUnref effect(SkNEW_ARGS(GrRectBlurEffect, (rect, sigma, |
| horizontalScanline, verticalScanline))); |
| - return CreateEffectRef(effect); |
| + return CreateEffectRef(effect); |
| } |
| unsigned int getWidth() const { return fWidth; } |
| @@ -686,6 +687,7 @@ bool GrRectBlurEffect::CreateScanlineTextures(GrContext *context, float sigma, |
| verticalPixels, 0); |
| if (NULL == *verticalScanline) { |
| + (*horizontalScanline)->unref(); |
| return false; |
| } |