Terraria
v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches
HWStack.cs
Go to the documentation of this file.
1
namespace
System.Xml
;
2
3
internal
sealed
class
HWStack
:
ICloneable
4
{
5
private
object
[]
_stack
;
6
7
private
readonly
int
_growthRate
;
8
9
private
int
_used
;
10
11
private
int
_size
;
12
13
private
readonly
int
_limit
;
14
15
internal
object
this
[
int
index
]
16
{
17
get
18
{
19
if
(
index
>= 0 &&
index
<
_used
)
20
{
21
return
_stack
[
index
];
22
}
23
throw
new
IndexOutOfRangeException
();
24
}
25
set
26
{
27
if
(
index
>= 0 &&
index
<
_used
)
28
{
29
_stack
[
index
] =
value
;
30
return
;
31
}
32
throw
new
IndexOutOfRangeException
();
33
}
34
}
35
36
internal
int
Length
=>
_used
;
37
38
internal
HWStack
(
int
GrowthRate
)
39
:
this
(
GrowthRate
, int.MaxValue)
40
{
41
}
42
43
internal
HWStack
(
int
GrowthRate
,
int
limit
)
44
{
45
_growthRate
=
GrowthRate
;
46
_used
= 0;
47
_stack
=
new
object
[
GrowthRate
];
48
_size
=
GrowthRate
;
49
_limit
=
limit
;
50
}
51
52
internal
object
Push
()
53
{
54
if
(
_used
==
_size
)
55
{
56
if
(
_limit
<=
_used
)
57
{
58
throw
new
XmlException
(
System
.
SR
.
Xml_StackOverflow
,
string
.Empty);
59
}
60
object
[]
array
=
new
object
[
_size
+
_growthRate
];
61
if
(
_used
> 0)
62
{
63
Array
.
Copy
(
_stack
,
array
,
_used
);
64
}
65
_stack
=
array
;
66
_size
+=
_growthRate
;
67
}
68
return
_stack
[
_used
++];
69
}
70
71
internal
object
Pop
()
72
{
73
if
(0 <
_used
)
74
{
75
_used
--;
76
return
_stack
[
_used
];
77
}
78
return
null
;
79
}
80
81
internal
object
Peek
()
82
{
83
if
(
_used
<= 0)
84
{
85
return
null
;
86
}
87
return
_stack
[
_used
- 1];
88
}
89
90
internal
void
AddToTop
(
object
o
)
91
{
92
if
(
_used
> 0)
93
{
94
_stack
[
_used
- 1] =
o
;
95
}
96
}
97
98
private
HWStack
(
object
[] stack,
int
growthRate
,
int
used
,
int
size)
99
{
100
_stack
= stack;
101
_growthRate
=
growthRate
;
102
_used
=
used
;
103
_size
= size;
104
}
105
106
public
object
Clone
()
107
{
108
return
new
HWStack
((
object
[])
_stack
.Clone(),
_growthRate
,
_used
,
_size
);
109
}
110
}
System.Array.Copy
static unsafe void Copy(Array sourceArray, Array destinationArray, int length)
Definition
Array.cs:624
System.Array
Definition
Array.cs:16
System.IndexOutOfRangeException
Definition
IndexOutOfRangeException.cs:9
System.SR.Xml_StackOverflow
static string Xml_StackOverflow
Definition
SR.cs:22
System.SR
Definition
SR.cs:7
System.Xml.HWStack._stack
object[] _stack
Definition
HWStack.cs:5
System.Xml.HWStack._growthRate
readonly int _growthRate
Definition
HWStack.cs:7
System.Xml.HWStack.HWStack
HWStack(int GrowthRate)
Definition
HWStack.cs:38
System.Xml.HWStack.AddToTop
void AddToTop(object o)
Definition
HWStack.cs:90
System.Xml.HWStack.Push
object Push()
Definition
HWStack.cs:52
System.Xml.HWStack.Clone
object Clone()
Definition
HWStack.cs:106
System.Xml.HWStack.Peek
object Peek()
Definition
HWStack.cs:81
System.Xml.HWStack.Length
int Length
Definition
HWStack.cs:36
System.Xml.HWStack._used
int _used
Definition
HWStack.cs:9
System.Xml.HWStack.Pop
object Pop()
Definition
HWStack.cs:71
System.Xml.HWStack._limit
readonly int _limit
Definition
HWStack.cs:13
System.Xml.HWStack.HWStack
HWStack(int GrowthRate, int limit)
Definition
HWStack.cs:43
System.Xml.HWStack.HWStack
HWStack(object[] stack, int growthRate, int used, int size)
Definition
HWStack.cs:98
System.Xml.HWStack._size
int _size
Definition
HWStack.cs:11
System.Xml.HWStack
Definition
HWStack.cs:4
System.ICloneable
Definition
ICloneable.cs:4
System.Xml.ExceptionType.XmlException
@ XmlException
System.Xml.ValueHandleType.Dictionary
@ Dictionary
System.Xml
Definition
BaseRegionIterator.cs:1
System.ExceptionArgument.value
@ value
System.ExceptionArgument.index
@ index
System.ExceptionArgument.array
@ array
System
Definition
BlockingCollection.cs:8
source
System.Private.Xml
System.Xml
HWStack.cs
Generated by
1.10.0