don't leak test filters and shaders

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1568173002

TBR=

Review URL: https://codereview.chromium.org/1568173002
diff --git a/gm/colorfilterimagefilter.cpp b/gm/colorfilterimagefilter.cpp
index 711a7e4..49e568b 100644
--- a/gm/colorfilterimagefilter.cpp
+++ b/gm/colorfilterimagefilter.cpp
@@ -42,15 +42,10 @@
     return SkColorFilter::CreateModeFilter(color, SkXfermode::kSrc_Mode);
 }
 
-static const SkTDArray<SkColorFilter*>& sk_gm_get_colorfilters() {
-    static SkTDArray<SkColorFilter*> gColorFilters;
-    
-    if (gColorFilters.count() == 0) {
-        *gColorFilters.append() = cf_make_brightness(0.5f);
-        *gColorFilters.append() = cf_make_grayscale();
-        *gColorFilters.append() = cf_make_colorize(SK_ColorBLUE);
-    }
-    return gColorFilters;
+static void sk_gm_get_colorfilters(SkTDArray<SkColorFilter*>* array) {
+    *array->append() = cf_make_brightness(0.5f);
+    *array->append() = cf_make_grayscale();
+    *array->append() = cf_make_colorize(SK_ColorBLUE);
 }
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
@@ -75,15 +70,10 @@
     return image->newShader(SkShader::kRepeat_TileMode, SkShader::kRepeat_TileMode);
 }
 
-static const SkTDArray<SkShader*>& sk_gm_get_shaders() {
-    static SkTDArray<SkShader*> gShaders;
-    
-    if (gShaders.count() == 0) {
-        *gShaders.append() = sh_make_lineargradient0();
-        *gShaders.append() = sh_make_lineargradient1();
-        *gShaders.append() = sh_make_image();
-    }
-    return gShaders;
+static void sk_gm_get_shaders(SkTDArray<SkShader*>* array) {
+    *array->append() = sh_make_lineargradient0();
+    *array->append() = sh_make_lineargradient1();
+    *array->append() = sh_make_image();
 }
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
@@ -190,9 +180,17 @@
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
+template <typename T> class SkTRefArray : public SkTDArray<T> {
+public:
+    ~SkTRefArray() { this->unrefAll(); }
+};
+
 DEF_SIMPLE_GM(colorfiltershader, canvas, 800, 800) {
-    const SkTDArray<SkColorFilter*>& filters = sk_gm_get_colorfilters();
-    const SkTDArray<SkShader*>& shaders = sk_gm_get_shaders();
+    SkTRefArray<SkColorFilter*> filters;
+    sk_gm_get_colorfilters(&filters);
+
+    SkTRefArray<SkShader*> shaders;
+    sk_gm_get_shaders(&shaders);
 
     SkPaint paint;
     SkRect r = SkRect::MakeWH(120, 120);