| 
					
				 | 
			
			
				@@ -122,6 +122,12 @@ static void begin_frame(framer_state *st, frame_type type) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   st->output_length_at_start_of_frame = st->output->length; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+static void begin_new_frame(framer_state *st, frame_type type) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  finish_frame(st, 1, 0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  st->last_was_header = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  begin_frame(st, type); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 /* make sure that the current frame is of the type desired, and has sufficient 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    space to add at least about_to_add bytes -- finishes the current frame if 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    needed */ 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -571,6 +577,7 @@ void grpc_chttp2_encode(grpc_stream_op *ops, size_t ops_count, int eof, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            a metadata element that needs to be unreffed back into the metadata 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            slot. THIS MAY NOT BE THE SAME ELEMENT (if a decoder table slot got 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            updated). After this loop, we'll do a batch unref of elements. */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        begin_new_frame(&st, HEADER); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         need_unref |= op->data.metadata.garbage.head != NULL; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         grpc_metadata_batch_assert_ok(&op->data.metadata); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         for (l = op->data.metadata.list.head; l; l = l->next) { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -580,9 +587,6 @@ void grpc_chttp2_encode(grpc_stream_op *ops, size_t ops_count, int eof, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if (gpr_time_cmp(op->data.metadata.deadline, gpr_inf_future) != 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           deadline_enc(compressor, op->data.metadata.deadline, &st); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        ensure_frame_type(&st, HEADER, 0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        finish_frame(&st, 1, 0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        st.last_was_header = 0; /* force a new header frame */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         curop++; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       case GRPC_OP_SLICE: 
			 |