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

◆ Write() [2/2]

override void System.IO.MemoryStream.Write ( ReadOnlySpan< byte > buffer)
inlinevirtualinherited

Reimplemented from System.IO.Stream.

Reimplemented in System.IO.UnmanagedMemoryStreamWrapper.

Definition at line 586 of file MemoryStream.cs.

587 {
588 if (GetType() != typeof(MemoryStream))
589 {
590 base.Write(buffer);
591 return;
592 }
595 int num = _position + buffer.Length;
596 if (num < 0)
597 {
598 throw new IOException(SR.IO_StreamTooLong);
599 }
600 if (num > _length)
601 {
602 bool flag = _position > _length;
603 if (num > _capacity && EnsureCapacity(num))
604 {
605 flag = false;
606 }
607 if (flag)
608 {
609 Array.Clear(_buffer, _length, num - _length);
610 }
611 _length = num;
612 }
613 buffer.CopyTo(new Span<byte>(_buffer, _position, buffer.Length));
614 _position = num;
615 }
bool EnsureCapacity(int value)

References System.IO.MemoryStream._buffer, System.IO.MemoryStream._capacity, System.IO.MemoryStream._length, System.IO.MemoryStream._position, System.buffer, System.Array.Clear(), System.IO.MemoryStream.EnsureCapacity(), System.IO.MemoryStream.EnsureNotClosed(), System.IO.MemoryStream.EnsureWriteable(), and System.SR.IO_StreamTooLong.