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
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 @@
         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 @@
     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"