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

◆ LastIndexOf< T >() [1/2]

static int System.SpanHelpers.LastIndexOf< T > ( ref T searchSpace,
int searchSpaceLength,
ref T value,
int valueLength )
inlinestatic
Type Constraints
T :IEquatable<T> 

Definition at line 3412 of file SpanHelpers.cs.

3413 {
3414 if (valueLength == 0)
3415 {
3416 return searchSpaceLength;
3417 }
3418 T value2 = value;
3419 ref T second = ref Unsafe.Add(ref value, 1);
3420 int num = valueLength - 1;
3421 int num2 = 0;
3422 while (true)
3423 {
3424 int num3 = searchSpaceLength - num2 - num;
3425 if (num3 <= 0)
3426 {
3427 break;
3428 }
3430 if (num4 == -1)
3431 {
3432 break;
3433 }
3434 if (SequenceEqual(ref Unsafe.Add(ref searchSpace, num4 + 1), ref second, num))
3435 {
3436 return num4;
3437 }
3438 num2 += num3 - num4;
3439 }
3440 return -1;
3441 }
static unsafe bool SequenceEqual(ref byte first, ref byte second, nuint length)
static int LastIndexOf(ref byte searchSpace, int searchSpaceLength, ref byte value, int valueLength)

References System.SpanHelpers.LastIndexOf(), System.SpanHelpers.SequenceEqual(), and System.value.