Use child processors to implement compose color filter.

Review URL: https://codereview.chromium.org/1368423003
diff --git a/src/gpu/SkGr.cpp b/src/gpu/SkGr.cpp
index e0892d8..59bd865 100644
--- a/src/gpu/SkGr.cpp
+++ b/src/gpu/SkGr.cpp
@@ -812,12 +812,10 @@
         if (applyColorFilterToPaintColor) {
             grPaint->setColor(SkColorToPremulGrColor(colorFilter->filterColor(skPaint.getColor())));
         } else {
-            SkTDArray<const GrFragmentProcessor*> array;
-            if (colorFilter->asFragmentProcessors(context, grPaint->getProcessorDataManager(),
-                                                  &array)) {
-                for (int i = 0; i < array.count(); ++i) {
-                    grPaint->addColorFragmentProcessor(array[i])->unref();
-                }
+            SkAutoTUnref<const GrFragmentProcessor> cfFP(
+                colorFilter->asFragmentProcessor(context, grPaint->getProcessorDataManager()));
+            if (cfFP) {
+                grPaint->addColorFragmentProcessor(cfFP);
             } else {
                 return false;
             }