Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches
ArrayBuilder.cs
Go to the documentation of this file.
2
4
5[DefaultMember("Item")]
6internal struct ArrayBuilder<T>
7{
8 private T[] _array;
9
10 private int _count;
11
12 public int Capacity
13 {
14 get
15 {
16 T[] array = _array;
17 if (array == null)
18 {
19 return 0;
20 }
21 return array.Length;
22 }
23 }
24
25 public void Add(T item)
26 {
27 if (_count == Capacity)
28 {
30 }
32 }
33
34 public T[] ToArray()
35 {
36 if (_count == 0)
37 {
38 return Array.Empty<T>();
39 }
40 T[] array = _array;
41 if (_count < array.Length)
42 {
43 array = new T[_count];
45 }
46 return array;
47 }
48
49 public void UncheckedAdd(T item)
50 {
51 _array[_count++] = item;
52 }
53
54 private void EnsureCapacity(int minimum)
55 {
56 int capacity = Capacity;
57 int num = ((capacity == 0) ? 4 : (2 * capacity));
58 if ((uint)num > (uint)Array.MaxLength)
59 {
60 num = Math.Max(capacity + 1, Array.MaxLength);
61 }
62 num = Math.Max(num, minimum);
63 T[] array = new T[num];
64 if (_count > 0)
65 {
67 }
68 _array = array;
69 }
70}
static int MaxLength
Definition Array.cs:471
static unsafe void Copy(Array sourceArray, Array destinationArray, int length)
Definition Array.cs:624
static byte Max(byte val1, byte val2)
Definition Math.cs:738