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

◆ CompareStringEqualsName()

unsafe bool System.Resources.ResourceReader.CompareStringEqualsName ( string name)
inlineprivate

Definition at line 477 of file ResourceReader.cs.

478 {
479 int num = _store.Read7BitEncodedInt();
480 if (num < 0)
481 {
482 throw new BadImageFormatException(SR.BadImageFormat_NegativeStringLength);
483 }
484 if (_ums != null)
485 {
487 _ums.Seek(num, SeekOrigin.Current);
488 if (_ums.Position > _ums.Length)
489 {
490 throw new BadImageFormatException(SR.BadImageFormat_ResourcesNameTooLong);
491 }
492 return FastResourceComparer.CompareOrdinal(positionPointer, num, name) == 0;
493 }
494 byte[] array = new byte[num];
495 int num2 = num;
496 while (num2 > 0)
497 {
498 int num3 = _store.Read(array, num - num2, num2);
499 if (num3 == 0)
500 {
501 throw new BadImageFormatException(SR.BadImageFormat_ResourceNameCorrupted);
502 }
503 num2 -= num3;
504 }
505 return FastResourceComparer.CompareOrdinal(array, num / 2, name) == 0;
506 }
override long Seek(long offset, SeekOrigin loc)

References System.Resources.ResourceReader._store, System.Resources.ResourceReader._ums, System.array, System.SR.BadImageFormat_NegativeStringLength, System.SR.BadImageFormat_ResourceNameCorrupted, System.SR.BadImageFormat_ResourcesNameTooLong, System.Resources.FastResourceComparer.CompareOrdinal(), System.IO.UnmanagedMemoryStream.Length, System.IO.UnmanagedMemoryStream.Position, System.IO.UnmanagedMemoryStream.PositionPointer, System.IO.BinaryReader.Read(), System.IO.BinaryReader.Read7BitEncodedInt(), and System.IO.UnmanagedMemoryStream.Seek().

Referenced by System.Resources.ResourceReader.FindPosForResource().