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