@@ -561,44 +561,53 @@ private async Task ProduceEnd()
561
561
562
562
private static void OutputAsciiBlock ( string data , MemoryPoolBlock2 memoryBlock , ISocketOutput output )
563
563
{
564
- var end = memoryBlock . Start + memoryBlock . Data . Count ;
564
+ var start = memoryBlock . Start ;
565
+ var end = start + memoryBlock . Data . Count ;
566
+ var array = memoryBlock . Array ;
567
+ var current = memoryBlock . End ;
565
568
566
569
foreach ( var chr in data )
567
570
{
568
- memoryBlock . Array [ memoryBlock . End ] = ( byte ) chr ;
571
+ array [ current ] = ( byte ) chr ;
569
572
570
- memoryBlock . End ++ ;
573
+ current ++ ;
571
574
572
- if ( memoryBlock . End == end )
575
+ if ( current == end )
573
576
{
574
577
output . Write ( memoryBlock . Data , immediate : false ) ;
575
- memoryBlock . End = memoryBlock . Start ;
578
+ current = start ;
576
579
}
577
580
}
581
+ memoryBlock . End = current ;
578
582
}
579
583
580
584
private static void OutputAsciiBlock ( byte [ ] data , MemoryPoolBlock2 memoryBlock , ISocketOutput output )
581
585
{
582
586
var offset = 0 ;
583
587
var remaining = data . Length ;
584
- var end = memoryBlock . Start + memoryBlock . Data . Count ;
588
+
589
+ var start = memoryBlock . Start ;
590
+ var end = start + memoryBlock . Data . Count ;
591
+ var array = memoryBlock . Array ;
592
+ var current = memoryBlock . End ;
585
593
586
594
while ( remaining > 0 )
587
595
{
588
- var blockRemaining = end - memoryBlock . End ;
596
+ var blockRemaining = end - current ;
589
597
var copyAmount = blockRemaining >= remaining ? remaining : blockRemaining ;
590
- Buffer . BlockCopy ( data , offset , memoryBlock . Array , memoryBlock . End , copyAmount ) ;
598
+ Buffer . BlockCopy ( data , offset , array , current , copyAmount ) ;
591
599
592
- memoryBlock . End += copyAmount ;
600
+ current += copyAmount ;
593
601
remaining -= copyAmount ;
594
602
offset += copyAmount ;
595
603
596
- if ( memoryBlock . End == end )
604
+ if ( current == end )
597
605
{
598
606
output . Write ( memoryBlock . Data , immediate : false ) ;
599
- memoryBlock . End = memoryBlock . Start ;
607
+ current = start ;
600
608
}
601
609
}
610
+ memoryBlock . End = current ;
602
611
}
603
612
604
613
private Task CreateResponseHeader (
0 commit comments