Remove array of TextureSampler pointers from GrIOResourceProcessor.

Instead store sampler count on base class and subclasses implement a
virtual to get the ith sampler.

Change-Id: I13e2447a6467a09761d8615acb4aa360b87b1476
Reviewed-on: https://skia-review.googlesource.com/141563
Commit-Queue: Brian Salomon <bsalomon@google.com>
Reviewed-by: Robert Phillips <robertphillips@google.com>
diff --git a/tests/ProcessorTest.cpp b/tests/ProcessorTest.cpp
index 1d0e70c..9b7e93b 100644
--- a/tests/ProcessorTest.cpp
+++ b/tests/ProcessorTest.cpp
@@ -97,8 +97,9 @@
     TestFP(const SkTArray<sk_sp<GrTextureProxy>>& proxies, const SkTArray<sk_sp<GrBuffer>>& buffers)
             : INHERITED(kTestFP_ClassID, kNone_OptimizationFlags), fSamplers(4) {
         for (const auto& proxy : proxies) {
-            this->addTextureSampler(&fSamplers.emplace_back(proxy));
+            fSamplers.emplace_back(proxy);
         }
+        this->setTextureSamplerCnt(fSamplers.count());
     }
 
     TestFP(std::unique_ptr<GrFragmentProcessor> child)
@@ -110,11 +111,11 @@
             : INHERITED(kTestFP_ClassID, that.optimizationFlags()), fSamplers(4) {
         for (int i = 0; i < that.fSamplers.count(); ++i) {
             fSamplers.emplace_back(that.fSamplers[i]);
-            this->addTextureSampler(&fSamplers.back());
         }
         for (int i = 0; i < that.numChildProcessors(); ++i) {
             this->registerChildProcessor(that.childProcessor(i).clone());
         }
+        this->setTextureSamplerCnt(fSamplers.count());
     }
 
     virtual GrGLSLFragmentProcessor* onCreateGLSLInstance() const override {
@@ -132,6 +133,7 @@
     }
 
     bool onIsEqual(const GrFragmentProcessor&) const override { return false; }
+    const TextureSampler& onTextureSampler(int i) const override { return fSamplers[i]; }
 
     GrTAllocator<TextureSampler> fSamplers;
     typedef GrFragmentProcessor INHERITED;