| 
					
				 | 
			
			
				@@ -29,6 +29,7 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 #include "src/core/lib/gpr/alloc.h" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 #include "src/core/lib/gpr/string.h" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+#include "src/core/lib/gprpp/memory.h" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 #include "src/core/lib/iomgr/executor.h" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 #include "src/core/lib/iomgr/iomgr.h" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 #include "src/core/lib/slice/slice_internal.h" 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -243,21 +244,23 @@ void grpc_transport_stream_op_batch_finish_with_failure( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   GRPC_ERROR_UNREF(error); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-typedef struct { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+struct made_transport_op { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   grpc_closure outer_on_complete; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  grpc_closure* inner_on_complete; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  grpc_closure* inner_on_complete = nullptr; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   grpc_transport_op op; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-} made_transport_op; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  made_transport_op() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    memset(&outer_on_complete, 0, sizeof(outer_on_complete)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 static void destroy_made_transport_op(void* arg, grpc_error* error) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   made_transport_op* op = static_cast<made_transport_op*>(arg); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   GRPC_CLOSURE_SCHED(op->inner_on_complete, GRPC_ERROR_REF(error)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  gpr_free(op); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  grpc_core::Delete<made_transport_op>(op); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 grpc_transport_op* grpc_make_transport_op(grpc_closure* on_complete) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  made_transport_op* op = 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      static_cast<made_transport_op*>(gpr_malloc(sizeof(*op))); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  made_transport_op* op = grpc_core::New<made_transport_op>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   GRPC_CLOSURE_INIT(&op->outer_on_complete, destroy_made_transport_op, op, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     grpc_schedule_on_exec_ctx); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   op->inner_on_complete = on_complete; 
			 |