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

◆ GetId()

virtual long System.Runtime.Serialization.ObjectIDGenerator.GetId ( object obj,
out bool firstTime )
inlinevirtual

Definition at line 48 of file ObjectIDGenerator.cs.

49 {
50 if (obj == null)
51 {
52 throw new ArgumentNullException("obj");
53 }
54 bool found;
55 int num = FindElement(obj, out found);
56 long result;
57 if (!found)
58 {
59 _objs[num] = obj;
60 _ids[num] = _currentCount++;
61 result = _ids[num];
62 if (_currentCount > _currentSize * 4 / 2)
63 {
64 Rehash();
65 }
66 }
67 else
68 {
69 result = _ids[num];
70 }
72 return result;
73 }
int FindElement(object obj, out bool found)

References System.Runtime.Serialization.ObjectIDGenerator._currentCount, System.Runtime.Serialization.ObjectIDGenerator._currentSize, System.Runtime.Serialization.ObjectIDGenerator._ids, System.Runtime.Serialization.ObjectIDGenerator._objs, System.Runtime.Serialization.Dictionary, System.Runtime.Serialization.ObjectIDGenerator.FindElement(), System.obj, and System.Runtime.Serialization.ObjectIDGenerator.Rehash().

Referenced by System.Runtime.Serialization.Formatters.Binary.ObjectWriter.InternalGetId(), and System.Runtime.Serialization.Formatter.Schedule().