From 83e5eb8d0272da6c990aae399ab9390d2090a955 Mon Sep 17 00:00:00 2001 From: "tomhudson@google.com" Date: Mon, 4 Jun 2012 19:58:30 +0000 Subject: [PATCH] Clean up likely reference leak in Ganesh custom stages. http://codereview.appspot.com/6286047/ git-svn-id: http://skia.googlecode.com/svn/trunk@4146 2bbb7eff-a529-9590-31e7-b0007b416f81 --- include/gpu/GrSamplerState.h | 3 ++- src/gpu/SkGpuDevice.cpp | 11 ++++++----- src/gpu/gl/GrGpuGL_program.cpp | 2 -- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/include/gpu/GrSamplerState.h b/include/gpu/GrSamplerState.h index fb59111..f52775d 100644 --- a/include/gpu/GrSamplerState.h +++ b/include/gpu/GrSamplerState.h @@ -165,8 +165,9 @@ public: this->reset(kDefault_WrapMode, kDefault_Filter, GrMatrix::I()); } - void setCustomStage(GrCustomStage* stage) { + GrCustomStage* setCustomStage(GrCustomStage* stage) { GrSafeAssign(fCustomStage, stage); + return stage; } GrCustomStage* getCustomStage() const { return fCustomStage; } diff --git a/src/gpu/SkGpuDevice.cpp b/src/gpu/SkGpuDevice.cpp index de9d973..056c5d8 100644 --- a/src/gpu/SkGpuDevice.cpp +++ b/src/gpu/SkGpuDevice.cpp @@ -540,15 +540,16 @@ inline bool skPaint2GrPaintShader(SkGpuDevice* dev, GrSamplerState* sampler = grPaint->textureSampler(kShaderTextureIdx); switch (bmptype) { case SkShader::kRadial_BitmapType: { - sampler->setCustomStage(new GrRadialGradient()); + sampler->setCustomStage(new GrRadialGradient())->unref(); } break; case SkShader::kSweep_BitmapType: { - sampler->setCustomStage(new GrSweepGradient()); + sampler->setCustomStage(new GrSweepGradient())->unref(); } break; case SkShader::kTwoPointRadial_BitmapType: { - sampler->setCustomStage(new GrRadial2Gradient(twoPointParams[0], - twoPointParams[1], - twoPointParams[2] < 0)); + sampler->setCustomStage(new + GrRadial2Gradient(twoPointParams[0], + twoPointParams[1], + twoPointParams[2] < 0))->unref(); } break; default: break; diff --git a/src/gpu/gl/GrGpuGL_program.cpp b/src/gpu/gl/GrGpuGL_program.cpp index c230d40..30c5422 100644 --- a/src/gpu/gl/GrGpuGL_program.cpp +++ b/src/gpu/gl/GrGpuGL_program.cpp @@ -7,8 +7,6 @@ #include "GrGpuGL.h" -#include "effects/GrGradientEffects.h" - #include "GrCustomStage.h" #include "GrGLProgramStage.h" #include "GrGpuVertex.h" -- 2.7.4