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

◆ Add() [1/2]

override string System.Xml.NameTable.Add ( char[] key,
int start,
int len )
inline

Definition at line 54 of file NameTable.cs.

55 {
56 if (len == 0)
57 {
58 return string.Empty;
59 }
60 if (start >= key.Length || start < 0 || (long)start + (long)len > key.Length)
61 {
62 throw new IndexOutOfRangeException();
63 }
64 if (len < 0)
65 {
66 throw new ArgumentOutOfRangeException("len");
67 }
68 int hashCode = string.GetHashCode(key.AsSpan(start, len));
69 for (Entry entry = _entries[hashCode & _mask]; entry != null; entry = entry.next)
70 {
71 if (entry.hashCode == hashCode && entry.str.AsSpan().SequenceEqual(key.AsSpan(start, len)))
72 {
73 return entry.str;
74 }
75 }
76 return AddEntry(new string(key, start, len), hashCode);
77 }
string AddEntry(string str, int hashCode)
Definition NameTable.cs:142

References System.Xml.NameTable._entries, System.Xml.NameTable._mask, System.Xml.NameTable.AddEntry(), System.Xml.Dictionary, System.key, System.len, System.Xml.NameTable.Entry.next, and System.start.