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