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

◆ Equals2() [5/6]

unsafe bool System.Xml.XmlBufferReader.Equals2 ( int offset1,
int length1,
string s2 )
inline

Definition at line 936 of file XmlBufferReader.cs.

937 {
938 int length2 = s2.Length;
940 {
941 return false;
942 }
943 byte[] buffer = _buffer;
944 if (length1 < 8)
945 {
946 int num = Math.Min(length1, length2);
947 for (int i = 0; i < num; i++)
948 {
949 byte b = buffer[offset1 + i];
950 if (b >= 128)
951 {
952 return XmlConverter.ToString(buffer, offset1, length1) == s2;
953 }
954 if (s2[i] != b)
955 {
956 return false;
957 }
958 }
959 return length1 == length2;
960 }
961 int num2 = Math.Min(length1, length2);
962 fixed (byte* ptr = &buffer[offset1])
963 {
964 byte* ptr2 = ptr;
965 byte* ptr3 = ptr2 + num2;
966 fixed (char* ptr4 = s2)
967 {
968 char* ptr5 = ptr4;
969 int num3 = 0;
970 while (ptr2 < ptr3 && *ptr2 < 128)
971 {
972 num3 = *ptr2 - (byte)(*ptr5);
973 if (num3 != 0)
974 {
975 break;
976 }
977 ptr2++;
978 ptr5++;
979 }
980 if (num3 != 0)
981 {
982 return false;
983 }
984 if (ptr2 == ptr3)
985 {
986 return length1 == length2;
987 }
988 }
989 }
990 return XmlConverter.ToString(buffer, offset1, length1) == s2;
991 }

References System.Xml.XmlBufferReader._buffer, System.buffer, System.Xml.Dictionary, System.length1, System.length2, System.Math.Min(), and System.Xml.XmlConverter.ToString().