@@ -66,8 +66,10 @@ class GrDistanceFieldA8TextGeoProc : public GrGeometryProcessor {
6666 float lum,
6767 uint32_t flags,
6868 const SkMatrix& localMatrixIfUsesLocalCoords) {
69- return arena->make <GrDistanceFieldA8TextGeoProc>(
70- caps, views, numActiveViews, params, lum, flags, localMatrixIfUsesLocalCoords);
69+ return arena->make ([&](void * ptr) {
70+ return new (ptr) GrDistanceFieldA8TextGeoProc (
71+ caps, views, numActiveViews, params, lum, flags, localMatrixIfUsesLocalCoords);
72+ });
7173 }
7274#else
7375 static GrGeometryProcessor* Make (SkArenaAlloc* arena,
@@ -77,8 +79,10 @@ class GrDistanceFieldA8TextGeoProc : public GrGeometryProcessor {
7779 GrSamplerState params,
7880 uint32_t flags,
7981 const SkMatrix& localMatrixIfUsesLocalCoords) {
80- return arena->make <GrDistanceFieldA8TextGeoProc>(
81- caps, views, numActiveViews, params, flags, localMatrixIfUsesLocalCoords);
82+ return arena->make ([&](void * ptr) {
83+ return new (ptr) GrDistanceFieldA8TextGeoProc (
84+ caps, views, numActiveViews, params, flags, localMatrixIfUsesLocalCoords);
85+ });
8286 }
8387#endif
8488
@@ -103,8 +107,6 @@ class GrDistanceFieldA8TextGeoProc : public GrGeometryProcessor {
103107 GrGLSLPrimitiveProcessor* createGLSLInstance (const GrShaderCaps&) const override ;
104108
105109private:
106- friend class ::SkArenaAlloc; // for access to ctor
107-
108110 GrDistanceFieldA8TextGeoProc (const GrShaderCaps& caps,
109111 const GrSurfaceProxyView* views,
110112 int numActiveViews,
@@ -148,8 +150,10 @@ class GrDistanceFieldPathGeoProc : public GrGeometryProcessor {
148150 const SkMatrix& matrix, bool wideColor,
149151 const GrSurfaceProxyView* views, int numActiveViews,
150152 GrSamplerState params, uint32_t flags) {
151- return arena->make <GrDistanceFieldPathGeoProc>(caps, matrix, wideColor, views,
152- numActiveViews, params, flags);
153+ return arena->make ([&](void * ptr) {
154+ return new (ptr) GrDistanceFieldPathGeoProc (caps, matrix, wideColor, views,
155+ numActiveViews, params, flags);
156+ });
153157 }
154158
155159 ~GrDistanceFieldPathGeoProc () override {}
@@ -170,8 +174,6 @@ class GrDistanceFieldPathGeoProc : public GrGeometryProcessor {
170174 GrGLSLPrimitiveProcessor* createGLSLInstance (const GrShaderCaps&) const override ;
171175
172176private:
173- friend class ::SkArenaAlloc; // for access to ctor
174-
175177 GrDistanceFieldPathGeoProc (const GrShaderCaps& caps,
176178 const SkMatrix& matrix,
177179 bool wideColor,
@@ -228,9 +230,11 @@ class GrDistanceFieldLCDTextGeoProc : public GrGeometryProcessor {
228230 DistanceAdjust distanceAdjust,
229231 uint32_t flags,
230232 const SkMatrix& localMatrixIfUsesLocalCoords) {
231- return arena->make <GrDistanceFieldLCDTextGeoProc>(caps, views, numActiveViews, params,
232- distanceAdjust, flags,
233- localMatrixIfUsesLocalCoords);
233+ return arena->make ([&](void * ptr) {
234+ return new (ptr) GrDistanceFieldLCDTextGeoProc (caps, views, numActiveViews, params,
235+ distanceAdjust, flags,
236+ localMatrixIfUsesLocalCoords);
237+ });
234238 }
235239
236240 ~GrDistanceFieldLCDTextGeoProc () override {}
@@ -252,8 +256,6 @@ class GrDistanceFieldLCDTextGeoProc : public GrGeometryProcessor {
252256 GrGLSLPrimitiveProcessor* createGLSLInstance (const GrShaderCaps&) const override ;
253257
254258private:
255- friend class ::SkArenaAlloc; // for access to ctor
256-
257259 GrDistanceFieldLCDTextGeoProc (const GrShaderCaps& caps, const GrSurfaceProxyView* views,
258260 int numActiveViews, GrSamplerState params, DistanceAdjust wa,
259261 uint32_t flags, const SkMatrix& localMatrix);
0 commit comments