@@ -378,9 +378,9 @@ protected virtual void OnWindowAdjust(uint bytesToAdd)
378378 /// Called when channel data is received.
379379 /// </summary>
380380 /// <param name="data">The data.</param>
381- protected virtual void OnData ( byte [ ] data )
381+ protected virtual void OnData ( ArraySegment < byte > data )
382382 {
383- AdjustDataWindow ( data ) ;
383+ AdjustDataWindow ( data . Count ) ;
384384
385385 DataReceived ? . Invoke ( this , new ChannelDataEventArgs ( LocalChannelNumber , data ) ) ;
386386 }
@@ -392,7 +392,7 @@ protected virtual void OnData(byte[] data)
392392 /// <param name="dataTypeCode">The data type code.</param>
393393 protected virtual void OnExtendedData ( byte [ ] data , uint dataTypeCode )
394394 {
395- AdjustDataWindow ( data ) ;
395+ AdjustDataWindow ( data . Length ) ;
396396
397397 ExtendedDataReceived ? . Invoke ( this , new ChannelExtendedDataEventArgs ( LocalChannelNumber , data , dataTypeCode ) ) ;
398398 }
@@ -651,7 +651,7 @@ private void OnChannelData(object sender, MessageEventArgs<ChannelDataMessage> e
651651 {
652652 try
653653 {
654- OnData ( e . Message . Data ) ;
654+ OnData ( new ArraySegment < byte > ( e . Message . Data , e . Message . Offset , e . Message . Size ) ) ;
655655 }
656656 catch ( Exception ex )
657657 {
@@ -768,9 +768,9 @@ private void OnChannelFailure(object sender, MessageEventArgs<ChannelFailureMess
768768 }
769769 }
770770
771- private void AdjustDataWindow ( byte [ ] messageData )
771+ private void AdjustDataWindow ( int count )
772772 {
773- LocalWindowSize -= ( uint ) messageData . Length ;
773+ LocalWindowSize -= ( uint ) count ;
774774
775775 // Adjust window if window size is too low
776776 if ( LocalWindowSize < LocalPacketSize )
0 commit comments