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

◆ GetOffset()

long System.Buffers.ReadOnlySequence< T >.GetOffset ( SequencePosition position)
inline

Definition at line 440 of file ReadOnlySequence.cs.

441 {
442 object obj = position.GetObject();
443 bool flag = obj == null;
444 BoundsCheck(in position, !flag);
445 object startObject = _startObject;
446 object endObject = _endObject;
447 uint num = (uint)position.GetInteger();
448 if (flag)
449 {
451 num = (uint)GetIndex(_startInteger);
452 }
453 if (startObject == endObject)
454 {
455 return num;
456 }
457 if (((ReadOnlySequenceSegment<T>)obj).Memory.Length - num < 0)
458 {
460 }
461 ReadOnlySequenceSegment<T> readOnlySequenceSegment = (ReadOnlySequenceSegment<T>)startObject;
462 while (readOnlySequenceSegment != null && readOnlySequenceSegment != obj)
463 {
464 readOnlySequenceSegment = readOnlySequenceSegment.Next;
465 }
466 if (readOnlySequenceSegment == null)
467 {
469 }
470 return readOnlySequenceSegment.RunningIndex + num;
471 }
static void ThrowArgumentOutOfRangeException_PositionOutOfRange()
static int GetIndex(int Integer)
void BoundsCheck(in SequencePosition position, bool positionIsNotNull)

References System.Buffers.ReadOnlySequence< T >._endObject, System.Buffers.ReadOnlySequence< T >._startInteger, System.Buffers.ReadOnlySequence< T >._startObject, System.Buffers.ReadOnlySequence< T >.BoundsCheck(), System.Buffers.ReadOnlySequence< T >.GetIndex(), System.SequencePosition.GetInteger(), System.SequencePosition.GetObject(), System.Memory< T >.Length, System.Buffers.ReadOnlySequenceSegment< T >.Next, System.obj, and System.ThrowHelper.ThrowArgumentOutOfRangeException_PositionOutOfRange().