Remove static effects from the effect memory pool.
Review URL: https://codereview.chromium.org/14081016

git-svn-id: http://skia.googlecode.com/svn/trunk@8828 2bbb7eff-a529-9590-31e7-b0007b416f81
diff --git a/src/gpu/GrAAConvexPathRenderer.cpp b/src/gpu/GrAAConvexPathRenderer.cpp
index d7d19a3..eb52b61 100644
--- a/src/gpu/GrAAConvexPathRenderer.cpp
+++ b/src/gpu/GrAAConvexPathRenderer.cpp
@@ -450,12 +450,9 @@
 public:
 
     static GrEffectRef* Create() {
-        // we go through this so we only have one copy of each effect
-        static SkAutoTUnref<GrEffectRef> gQuadEdgeEffectRef(
-                    CreateEffectRef(AutoEffectUnref(SkNEW(QuadEdgeEffect))));
-
-        gQuadEdgeEffectRef.get()->ref();
-        return gQuadEdgeEffectRef;
+        GR_CREATE_STATIC_EFFECT(gQuadEdgeEffect, QuadEdgeEffect, ());
+        gQuadEdgeEffect->ref();
+        return gQuadEdgeEffect;
     }
 
     virtual ~QuadEdgeEffect() {}
diff --git a/src/gpu/GrAAHairLinePathRenderer.cpp b/src/gpu/GrAAHairLinePathRenderer.cpp
index 0a19d6c..a857dc4 100644
--- a/src/gpu/GrAAHairLinePathRenderer.cpp
+++ b/src/gpu/GrAAHairLinePathRenderer.cpp
@@ -508,12 +508,9 @@
 public:
 
     static GrEffectRef* Create() {
-        // we go through this so we only have one copy of each effect
-        static SkAutoTUnref<GrEffectRef> gHairQuadEdgeEffectRef(
-                         CreateEffectRef(AutoEffectUnref(SkNEW(HairQuadEdgeEffect))));
-
-        gHairQuadEdgeEffectRef.get()->ref();
-        return gHairQuadEdgeEffectRef;
+        GR_CREATE_STATIC_EFFECT(gHairQuadEdgeEffect, HairQuadEdgeEffect, ());
+        gHairQuadEdgeEffect->ref();
+        return gHairQuadEdgeEffect;
     }
 
     virtual ~HairQuadEdgeEffect() {}
@@ -609,12 +606,9 @@
 public:
 
     static GrEffectRef* Create() {
-        // we go through this so we only have one copy of each effect
-        static SkAutoTUnref<GrEffectRef> gHairLineEdgeEffectRef(
-                            CreateEffectRef(AutoEffectUnref(SkNEW(HairLineEdgeEffect))));
-
-        gHairLineEdgeEffectRef.get()->ref();
-        return gHairLineEdgeEffectRef;
+        GR_CREATE_STATIC_EFFECT(gHairLineEdge, HairLineEdgeEffect, ());
+        gHairLineEdge->ref();
+        return gHairLineEdge;
     }
 
     virtual ~HairLineEdgeEffect() {}
diff --git a/src/gpu/GrAARectRenderer.cpp b/src/gpu/GrAARectRenderer.cpp
index eacd3f1..418d80d 100644
--- a/src/gpu/GrAARectRenderer.cpp
+++ b/src/gpu/GrAARectRenderer.cpp
@@ -30,10 +30,9 @@
 class GrRectEffect : public GrEffect {
 public:
     static GrEffectRef* Create() {
-        static SkAutoTUnref<GrEffectRef> gRectEffectRef(
-                        CreateEffectRef(AutoEffectUnref(SkNEW(GrRectEffect))));
-        gRectEffectRef.get()->ref();
-        return gRectEffectRef;
+        GR_CREATE_STATIC_EFFECT(gRectEffect, GrRectEffect, ());
+        gRectEffect->ref();
+        return gRectEffect;
     }
 
     virtual ~GrRectEffect() {}
diff --git a/src/gpu/GrOvalRenderer.cpp b/src/gpu/GrOvalRenderer.cpp
index f217262..4b79528 100644
--- a/src/gpu/GrOvalRenderer.cpp
+++ b/src/gpu/GrOvalRenderer.cpp
@@ -51,18 +51,15 @@
 class CircleEdgeEffect : public GrEffect {
 public:
     static GrEffectRef* Create(bool stroke) {
-        // we go through this so we only have one copy of each effect (stroked/filled)
-        static SkAutoTUnref<GrEffectRef> gCircleStrokeEdgeEffectRef(
-                        CreateEffectRef(AutoEffectUnref(SkNEW_ARGS(CircleEdgeEffect, (true)))));
-        static SkAutoTUnref<GrEffectRef> gCircleFillEdgeEffectRef(
-                        CreateEffectRef(AutoEffectUnref(SkNEW_ARGS(CircleEdgeEffect, (false)))));
+        GR_CREATE_STATIC_EFFECT(gCircleStrokeEdge, CircleEdgeEffect, (true));
+        GR_CREATE_STATIC_EFFECT(gCircleFillEdge, CircleEdgeEffect, (false));
 
         if (stroke) {
-            gCircleStrokeEdgeEffectRef.get()->ref();
-            return gCircleStrokeEdgeEffectRef;
+            gCircleStrokeEdge->ref();
+            return gCircleStrokeEdge;
         } else {
-            gCircleFillEdgeEffectRef.get()->ref();
-            return gCircleFillEdgeEffectRef;
+            gCircleFillEdge->ref();
+            return gCircleFillEdge;
         }
     }
 
@@ -162,18 +159,15 @@
 class EllipseEdgeEffect : public GrEffect {
 public:
     static GrEffectRef* Create(bool stroke) {
-        // we go through this so we only have one copy of each effect (stroked/filled)
-        static SkAutoTUnref<GrEffectRef> gEllipseStrokeEdgeEffectRef(
-                        CreateEffectRef(AutoEffectUnref(SkNEW_ARGS(EllipseEdgeEffect, (true)))));
-        static SkAutoTUnref<GrEffectRef> gEllipseFillEdgeEffectRef(
-                        CreateEffectRef(AutoEffectUnref(SkNEW_ARGS(EllipseEdgeEffect, (false)))));
+        GR_CREATE_STATIC_EFFECT(gEllipseStrokeEdge, EllipseEdgeEffect, (true));
+        GR_CREATE_STATIC_EFFECT(gEllipseFillEdge, EllipseEdgeEffect, (false));
 
         if (stroke) {
-            gEllipseStrokeEdgeEffectRef.get()->ref();
-            return gEllipseStrokeEdgeEffectRef;
+            gEllipseStrokeEdge->ref();
+            return gEllipseStrokeEdge;
         } else {
-            gEllipseFillEdgeEffectRef.get()->ref();
-            return gEllipseFillEdgeEffectRef;
+            gEllipseFillEdge->ref();
+            return gEllipseFillEdge;
         }
     }