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

◆ GetFirstSpan() [2/2]

void System.Buffers.ReadOnlySequence< T >.GetFirstSpan ( out ReadOnlySpan< T > first,
out SequencePosition next )
inlinepackage

Definition at line 885 of file ReadOnlySequence.cs.

886 {
887 first = default(ReadOnlySpan<T>);
888 next = default(SequencePosition);
889 object startObject = _startObject;
890 int startInteger = _startInteger;
891 if (startObject == null)
892 {
893 return;
894 }
895 bool flag = startObject != _endObject;
896 int endInteger = _endInteger;
897 if (startInteger >= 0)
898 {
899 if (endInteger >= 0)
900 {
901 ReadOnlySequenceSegment<T> readOnlySequenceSegment = (ReadOnlySequenceSegment<T>)startObject;
902 first = readOnlySequenceSegment.Memory.Span;
903 if (flag)
904 {
905 first = first.Slice(startInteger);
906 next = new SequencePosition(readOnlySequenceSegment.Next, 0);
907 }
908 else
909 {
910 first = first.Slice(startInteger, endInteger - startInteger);
911 }
912 }
913 else
914 {
915 if (flag)
916 {
918 }
919 first = new ReadOnlySpan<T>((T[])startObject, startInteger, (endInteger & 0x7FFFFFFF) - startInteger);
920 }
921 }
922 else
923 {
924 first = GetFirstSpanSlow(startObject, startInteger, endInteger, flag);
925 }
926 }
static void ThrowInvalidOperationException_EndPositionNotReached()
ReadOnlySpan< T > GetFirstSpanSlow(object startObject, bool isMultiSegment)

References System.Buffers.ReadOnlySequence< T >._endInteger, System.Buffers.ReadOnlySequence< T >._endObject, System.Buffers.ReadOnlySequence< T >._startInteger, System.Buffers.ReadOnlySequence< T >._startObject, System.Buffers.ReadOnlySequence< T >.GetFirstSpanSlow(), System.Buffers.ReadOnlySequenceSegment< T >.Memory, System.Buffers.ReadOnlySequenceSegment< T >.Next, and System.ThrowHelper.ThrowInvalidOperationException_EndPositionNotReached().