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
This commit is contained in:
tomhudson@google.com 2012-06-04 19:58:30 +00:00
parent 150fee575b
commit 83e5eb8d02
3 changed files with 8 additions and 8 deletions

View File

@ -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; }

View File

@ -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],
sampler->setCustomStage(new
GrRadial2Gradient(twoPointParams[0],
twoPointParams[1],
twoPointParams[2] < 0));
twoPointParams[2] < 0))->unref();
} break;
default:
break;

View File

@ -7,8 +7,6 @@
#include "GrGpuGL.h"
#include "effects/GrGradientEffects.h"
#include "GrCustomStage.h"
#include "GrGLProgramStage.h"
#include "GrGpuVertex.h"