@@ -167,7 +167,7 @@ private long ReadFrameHeader(
167167 Task ? applicationProcessing ,
168168 ReadOnlySequence < byte > buffer )
169169 {
170- if ( ! VariableLenghtIntegerDecoder . TryRead ( buffer . FirstSpan , out var frameType , out int bytesReadFrameType ) )
170+ if ( ! VariableLenghtIntegerDecoder . TryRead ( buffer , out var frameType , out int bytesReadFrameType ) )
171171 return 0 ; // Not enough data to read payload length.
172172
173173 buffer = buffer . Slice ( bytesReadFrameType ) ;
@@ -176,7 +176,6 @@ private long ReadFrameHeader(
176176
177177 payloadRemainingLength = checked ( ( long ) payloadLength ) ;
178178 streamReadingState = NextRequestReadingState ( applicationProcessing , frameType ) ;
179- buffer = buffer . Slice ( bytesReadPayloadLength ) ;
180179 var bufferConsumed = bytesReadFrameType + bytesReadPayloadLength ;
181180 return bufferConsumed ;
182181 }
@@ -186,9 +185,7 @@ private long ReadReservedFrame(
186185 ref StreamReadingStatus streamReadingState ,
187186 ReadOnlySequence < byte > buffer )
188187 {
189- if ( payloadRemainingLength < buffer . Length )
190- buffer = buffer . Slice ( 0 , payloadRemainingLength ) ;
191- var bufferConsumed = buffer . Length ; // Read the complete reserved frame.
188+ var bufferConsumed = payloadRemainingLength < buffer . Length ? payloadRemainingLength : buffer . Length ; // Read the complete reserved frame.
192189 payloadRemainingLength -= bufferConsumed ;
193190 if ( payloadRemainingLength == 0 )
194191 streamReadingState = StreamReadingStatus . ReadingFrameHeader ;
0 commit comments