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

◆ ReadByte()

unsafe override int System.IO.UnmanagedMemoryStream.ReadByte ( )
inlinevirtualinherited

Reimplemented from System.IO.Stream.

Definition at line 387 of file UnmanagedMemoryStream.cs.

388 {
391 long num = Interlocked.Read(ref _position);
392 long num2 = Interlocked.Read(ref _length);
393 if (num >= num2)
394 {
395 return -1;
396 }
397 Interlocked.Exchange(ref _position, num + 1);
398 if (_buffer != null)
399 {
400 byte* pointer = null;
401 try
402 {
404 return (pointer + num)[_offset];
405 }
406 finally
407 {
408 if (pointer != null)
409 {
411 }
412 }
413 }
414 return _mem[num];
415 }
unsafe void AcquirePointer(ref byte *pointer)
Definition SafeBuffer.cs:58
static int Exchange(ref int location1, int value)
static long Read(ref long location)

References System.IO.UnmanagedMemoryStream._buffer, System.IO.UnmanagedMemoryStream._length, System.IO.UnmanagedMemoryStream._mem, System.IO.UnmanagedMemoryStream._offset, System.IO.UnmanagedMemoryStream._position, System.Runtime.InteropServices.SafeBuffer.AcquirePointer(), System.IO.UnmanagedMemoryStream.EnsureNotClosed(), System.IO.UnmanagedMemoryStream.EnsureReadable(), System.Threading.Interlocked.Exchange(), System.pointer, System.Threading.Interlocked.Read(), and System.Runtime.InteropServices.SafeBuffer.ReleasePointer().

Referenced by System.IO.UnmanagedMemoryStreamWrapper.ReadByte().