Add flag to switch op allocation to new

Added a flag to switch from using the memory pool to
using new and delete for GrOp allocation.

Just add the following to your gn args.
extra_cflags = [
    "-DGR_OP_ALLOCATE_USE_NEW",
]

Change-Id: Icea4a6df047cff2cd5e50032f0bd4b714a5740d4
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/322625
Commit-Queue: Herb Derby <herb@google.com>
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
diff --git a/src/gpu/ops/GrSimpleMeshDrawOpHelper.h b/src/gpu/ops/GrSimpleMeshDrawOpHelper.h
index 679c6c6..feabe94 100644
--- a/src/gpu/ops/GrSimpleMeshDrawOpHelper.h
+++ b/src/gpu/ops/GrSimpleMeshDrawOpHelper.h
@@ -212,12 +212,21 @@
         makeArgs.fProcessorSet = nullptr;
         return pool->allocate<Op>(makeArgs, paint.getColor4f(), std::forward<OpArgs>(opArgs)...);
     } else {
-        char* mem = (char*) pool->allocate(sizeof(Op) + sizeof(GrProcessorSet));
-        char* setMem = mem + sizeof(Op);
-        auto color = paint.getColor4f();
-        makeArgs.fProcessorSet = new (setMem) GrProcessorSet(std::move(paint));
-        return std::unique_ptr<GrDrawOp>(new (mem) Op(makeArgs, color,
-                                                      std::forward<OpArgs>(opArgs)...));
+        #if defined(GR_OP_ALLOCATE_USE_NEW)
+            char* mem = (char*) ::operator new(sizeof(Op) + sizeof(GrProcessorSet));
+            char* setMem = mem + sizeof(Op);
+            auto color = paint.getColor4f();
+            makeArgs.fProcessorSet = new (setMem) GrProcessorSet(std::move(paint));
+            GrDrawOp* op = new (mem) Op(makeArgs, color, std::forward<OpArgs>(opArgs)...);
+            return std::unique_ptr<GrDrawOp>(op);
+        #else
+            char* mem = (char*) pool->allocate(sizeof(Op) + sizeof(GrProcessorSet));
+            char* setMem = mem + sizeof(Op);
+            auto color = paint.getColor4f();
+            makeArgs.fProcessorSet = new (setMem) GrProcessorSet(std::move(paint));
+            return std::unique_ptr<GrDrawOp>(new (mem) Op(makeArgs, color,
+                                                          std::forward<OpArgs>(opArgs)...));
+        #endif
     }
 }