Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches

◆ Write() [1/2]

override void System.IO.BufferedStream.Write ( byte[] buffer,
int offset,
int count )
inline

Definition at line 599 of file BufferedStream.cs.

600 {
601 Stream.ValidateBufferArguments(buffer, offset, count);
604 if (_writePos == 0)
605 {
607 }
608 int num;
609 checked
610 {
611 num = _writePos + count;
612 if ((uint)num + count < _bufferSize + _bufferSize)
613 {
614 WriteToBuffer(buffer, ref offset, ref count);
615 if (_writePos >= _bufferSize)
616 {
618 _writePos = 0;
619 WriteToBuffer(buffer, ref offset, ref count);
620 }
621 return;
622 }
623 }
624 if (_writePos > 0)
625 {
626 if (num <= _bufferSize + _bufferSize && num <= 81920)
627 {
629 Buffer.BlockCopy(buffer, offset, _buffer, _writePos, count);
630 _stream.Write(_buffer, 0, num);
631 _writePos = 0;
632 return;
633 }
635 _writePos = 0;
636 }
638 }
void WriteToBuffer(byte[] buffer, ref int offset, ref int count)
void Write(byte[] buffer, int offset, int count)

References System.IO.BufferedStream._buffer, System.IO.BufferedStream._bufferSize, System.IO.BufferedStream._stream, System.IO.BufferedStream._writePos, System.Buffer.BlockCopy(), System.buffer, System.IO.BufferedStream.ClearReadBufferBeforeWrite(), System.count, System.IO.BufferedStream.EnsureCanWrite(), System.IO.BufferedStream.EnsureNotClosed(), System.IO.BufferedStream.EnsureShadowBufferAllocated(), System.offset, System.IO.Stream.ValidateBufferArguments(), System.IO.Stream.Write(), and System.IO.BufferedStream.WriteToBuffer().