| 
					
				 | 
			
			
				@@ -123,18 +123,18 @@ class ClientAsyncResponseReader final 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   void ReadInitialMetadata(void* tag) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     GPR_CODEGEN_ASSERT(!context_->initial_metadata_received_); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    Ops& o = ops_; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    Ops* o = &ops_; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     // TODO(vjpai): Remove the collection_ specialization as soon 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     // as the public constructor is deleted 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     if (collection_) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      o = *collection_; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      o = collection_.get(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       collection_->meta_buf.SetCollection(collection_); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    o.meta_buf.set_output_tag(tag); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    o.meta_buf.RecvInitialMetadata(context_); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    call_.PerformOps(&o.meta_buf); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    o->meta_buf.set_output_tag(tag); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    o->meta_buf.RecvInitialMetadata(context_); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    call_.PerformOps(&o->meta_buf); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   /// See \a ClientAysncResponseReaderInterface::Finish for semantics. 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -143,23 +143,23 @@ class ClientAsyncResponseReader final 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   ///   - the \a ClientContext associated with this call is updated with 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   ///     possible initial and trailing metadata sent from the server. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   void Finish(R* msg, Status* status, void* tag) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    Ops& o = ops_; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    Ops* o = &ops_; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     // TODO(vjpai): Remove the collection_ specialization as soon 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     // as the public constructor is deleted 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     if (collection_) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      o = *collection_; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      o = collection_.get(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       collection_->finish_buf.SetCollection(collection_); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    o.finish_buf.set_output_tag(tag); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    o->finish_buf.set_output_tag(tag); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     if (!context_->initial_metadata_received_) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      o.finish_buf.RecvInitialMetadata(context_); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      o->finish_buf.RecvInitialMetadata(context_); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    o.finish_buf.RecvMessage(msg); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    o.finish_buf.AllowNoMessage(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    o.finish_buf.ClientRecvStatus(context_, status); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    call_.PerformOps(&o.finish_buf); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    o->finish_buf.RecvMessage(msg); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    o->finish_buf.AllowNoMessage(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    o->finish_buf.ClientRecvStatus(context_, status); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    call_.PerformOps(&o->finish_buf); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  private: 
			 |