Terraria
v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches
SequencePointCollection.cs
Go to the documentation of this file.
1
using
System.Collections
;
2
using
System.Collections.Generic
;
3
using
System.Reflection.Internal
;
4
using
System.Reflection.Metadata.Ecma335
;
5
6
namespace
System.Reflection.Metadata
;
7
8
public
readonly
struct
SequencePointCollection
:
IEnumerable
<SequencePoint>,
IEnumerable
9
{
10
public
struct
Enumerator
:
IEnumerator
<SequencePoint>,
IEnumerator
,
IDisposable
11
{
12
private
BlobReader
_reader
;
13
14
private
SequencePoint
_current
;
15
16
private
int
_previousNonHiddenStartLine
;
17
18
private
ushort
_previousNonHiddenStartColumn
;
19
20
public
SequencePoint
Current
=>
_current
;
21
22
object
IEnumerator.Current =>
_current
;
23
24
internal
Enumerator
(
MemoryBlock
block
,
DocumentHandle
document
)
25
{
26
_reader
=
new
BlobReader
(
block
);
27
_current
=
new
SequencePoint
(
document
, -1);
28
_previousNonHiddenStartLine
= -1;
29
_previousNonHiddenStartColumn
= 0;
30
}
31
32
public
bool
MoveNext
()
33
{
34
if
(
_reader
.
RemainingBytes
== 0)
35
{
36
return
false
;
37
}
38
DocumentHandle
document
=
_current
.
Document
;
39
int
offset
;
40
if
(
_reader
.
Offset
== 0)
41
{
42
_reader
.
ReadCompressedInteger
();
43
if
(
document
.IsNil)
44
{
45
document
=
ReadDocumentHandle
();
46
}
47
offset
=
_reader
.
ReadCompressedInteger
();
48
}
49
else
50
{
51
int
delta
;
52
while
((
delta
=
_reader
.
ReadCompressedInteger
()) == 0)
53
{
54
document
=
ReadDocumentHandle
();
55
}
56
offset
=
AddOffsets
(
_current
.
Offset
,
delta
);
57
}
58
ReadDeltaLinesAndColumns
(
out
var
deltaLines
,
out
var
deltaColumns
);
59
if
(
deltaLines
== 0 &&
deltaColumns
== 0)
60
{
61
_current
=
new
SequencePoint
(
document
,
offset
);
62
return
true
;
63
}
64
int
num;
65
ushort
num2
;
66
if
(
_previousNonHiddenStartLine
< 0)
67
{
68
num =
ReadLine
();
69
num2
=
ReadColumn
();
70
}
71
else
72
{
73
num =
AddLines
(
_previousNonHiddenStartLine
,
_reader
.
ReadCompressedSignedInteger
());
74
num2
=
AddColumns
(
_previousNonHiddenStartColumn
,
_reader
.
ReadCompressedSignedInteger
());
75
}
76
_previousNonHiddenStartLine
= num;
77
_previousNonHiddenStartColumn
=
num2
;
78
_current
=
new
SequencePoint
(
document
,
offset
, num,
num2
,
AddLines
(num,
deltaLines
),
AddColumns
(
num2
,
deltaColumns
));
79
return
true
;
80
}
81
82
private
void
ReadDeltaLinesAndColumns
(
out
int
deltaLines
,
out
int
deltaColumns
)
83
{
84
deltaLines
=
_reader
.
ReadCompressedInteger
();
85
deltaColumns
= ((
deltaLines
== 0) ?
_reader
.
ReadCompressedInteger
() :
_reader
.
ReadCompressedSignedInteger
());
86
}
87
88
private
int
ReadLine
()
89
{
90
return
_reader
.
ReadCompressedInteger
();
91
}
92
93
private
ushort
ReadColumn
()
94
{
95
int
num =
_reader
.
ReadCompressedInteger
();
96
if
(num > 65535)
97
{
98
Throw
.
SequencePointValueOutOfRange
();
99
}
100
return
(ushort)num;
101
}
102
103
private
int
AddOffsets
(
int
value
,
int
delta
)
104
{
105
int
num =
value
+
delta
;
106
if
(num < 0)
107
{
108
Throw
.
SequencePointValueOutOfRange
();
109
}
110
return
num;
111
}
112
113
private
int
AddLines
(
int
value
,
int
delta
)
114
{
115
int
num =
value
+
delta
;
116
if
(
num < 0 || num >
= 16707566)
117
{
118
Throw
.
SequencePointValueOutOfRange
();
119
}
120
return
num;
121
}
122
123
private
ushort
AddColumns
(ushort
value
,
int
delta
)
124
{
125
int
num =
value
+
delta
;
126
if
(
num < 0 || num >
= 65535)
127
{
128
Throw
.
SequencePointValueOutOfRange
();
129
}
130
return
(ushort)num;
131
}
132
133
private
DocumentHandle
ReadDocumentHandle
()
134
{
135
int
num =
_reader
.
ReadCompressedInteger
();
136
if
(num == 0 || !
TokenTypeIds
.
IsValidRowId
(num))
137
{
138
Throw
.
InvalidHandle
();
139
}
140
return
DocumentHandle
.
FromRowId
(num);
141
}
142
143
public
void
Reset
()
144
{
145
_reader
.
Reset
();
146
_current
=
default
(
SequencePoint
);
147
}
148
149
void
IDisposable
.
Dispose
()
150
{
151
}
152
}
153
154
private
readonly
MemoryBlock
_block
;
155
156
private
readonly
DocumentHandle
_document
;
157
158
internal
SequencePointCollection
(
MemoryBlock
block
,
DocumentHandle
document
)
159
{
160
_block
=
block
;
161
_document
=
document
;
162
}
163
164
public
Enumerator
GetEnumerator
()
165
{
166
return
new
Enumerator
(
_block
,
_document
);
167
}
168
169
IEnumerator
IEnumerable
.
GetEnumerator
()
170
{
171
return
GetEnumerator
();
172
}
173
174
IEnumerator<SequencePoint>
IEnumerable<SequencePoint>
.
GetEnumerator
()
175
{
176
return
GetEnumerator
();
177
}
178
}
System.Collections.Generic.Dictionary.GetEnumerator
Enumerator GetEnumerator()
Definition
Dictionary.cs:984
System.Collections.Generic.Dictionary
Definition
Dictionary.cs:14
System.Reflection.Metadata.Ecma335.TokenTypeIds.IsValidRowId
static bool IsValidRowId(uint rowId)
Definition
TokenTypeIds.cs:99
System.Reflection.Metadata.Ecma335.TokenTypeIds
Definition
TokenTypeIds.cs:4
System.Reflection.Throw.InvalidHandle
static void InvalidHandle()
Definition
Throw.cs:208
System.Reflection.Throw.SequencePointValueOutOfRange
static void SequencePointValueOutOfRange()
Definition
Throw.cs:285
System.Reflection.Throw
Definition
Throw.cs:9
System.Collections.Generic.IEnumerable.GetEnumerator
new IEnumerator< T > GetEnumerator()
System.Collections.Generic.IEnumerable
Definition
IEnumerable.cs:4
System.Collections.Generic.IEnumerator
Definition
IEnumerator.cs:4
System.IDisposable.Dispose
void Dispose()
System.IDisposable
Definition
IDisposable.cs:4
System.Collections.Generic
Definition
IHashKeyCollection.cs:1
System.Collections
Definition
BlockingCollection.cs:8
System.Reflection.Internal
Definition
AbstractMemoryBlock.cs:4
System.Reflection.Metadata.Ecma335
Definition
ArrayShapeEncoder.cs:3
System.Reflection.Metadata
Definition
AssemblyExtensions.cs:4
System.ExceptionArgument.value
@ value
System.ExceptionArgument.offset
@ offset
System.Reflection.Internal.MemoryBlock
Definition
MemoryBlock.cs:11
System.Reflection.Metadata.BlobReader.ReadCompressedInteger
int ReadCompressedInteger()
Definition
BlobReader.cs:303
System.Reflection.Metadata.BlobReader.Reset
unsafe void Reset()
Definition
BlobReader.cs:76
System.Reflection.Metadata.BlobReader.Offset
unsafe int Offset
Definition
BlobReader.cs:28
System.Reflection.Metadata.BlobReader.ReadCompressedSignedInteger
int ReadCompressedSignedInteger()
Definition
BlobReader.cs:340
System.Reflection.Metadata.BlobReader.RemainingBytes
unsafe int RemainingBytes
Definition
BlobReader.cs:43
System.Reflection.Metadata.BlobReader
Definition
BlobReader.cs:10
System.Reflection.Metadata.DocumentHandle.FromRowId
static DocumentHandle FromRowId(int rowId)
Definition
DocumentHandle.cs:16
System.Reflection.Metadata.DocumentHandle
Definition
DocumentHandle.cs:4
System.Reflection.Metadata.SequencePointCollection.Enumerator.AddColumns
ushort AddColumns(ushort value, int delta)
Definition
SequencePointCollection.cs:123
System.Reflection.Metadata.SequencePointCollection.Enumerator.Current
SequencePoint Current
Definition
SequencePointCollection.cs:20
System.Reflection.Metadata.SequencePointCollection.Enumerator.AddOffsets
int AddOffsets(int value, int delta)
Definition
SequencePointCollection.cs:103
System.Reflection.Metadata.SequencePointCollection.Enumerator.Reset
void Reset()
Definition
SequencePointCollection.cs:143
System.Reflection.Metadata.SequencePointCollection.Enumerator._previousNonHiddenStartColumn
ushort _previousNonHiddenStartColumn
Definition
SequencePointCollection.cs:18
System.Reflection.Metadata.SequencePointCollection.Enumerator._reader
BlobReader _reader
Definition
SequencePointCollection.cs:12
System.Reflection.Metadata.SequencePointCollection.Enumerator.ReadDeltaLinesAndColumns
void ReadDeltaLinesAndColumns(out int deltaLines, out int deltaColumns)
Definition
SequencePointCollection.cs:82
System.Reflection.Metadata.SequencePointCollection.Enumerator.ReadColumn
ushort ReadColumn()
Definition
SequencePointCollection.cs:93
System.Reflection.Metadata.SequencePointCollection.Enumerator._current
SequencePoint _current
Definition
SequencePointCollection.cs:14
System.Reflection.Metadata.SequencePointCollection.Enumerator._previousNonHiddenStartLine
int _previousNonHiddenStartLine
Definition
SequencePointCollection.cs:16
System.Reflection.Metadata.SequencePointCollection.Enumerator.Enumerator
Enumerator(MemoryBlock block, DocumentHandle document)
Definition
SequencePointCollection.cs:24
System.Reflection.Metadata.SequencePointCollection.Enumerator.MoveNext
bool MoveNext()
Definition
SequencePointCollection.cs:32
System.Reflection.Metadata.SequencePointCollection.Enumerator.ReadLine
int ReadLine()
Definition
SequencePointCollection.cs:88
System.Reflection.Metadata.SequencePointCollection.Enumerator.AddLines
int AddLines(int value, int delta)
Definition
SequencePointCollection.cs:113
System.Reflection.Metadata.SequencePointCollection.Enumerator.ReadDocumentHandle
DocumentHandle ReadDocumentHandle()
Definition
SequencePointCollection.cs:133
System.Reflection.Metadata.SequencePointCollection.Enumerator
Definition
SequencePointCollection.cs:11
System.Reflection.Metadata.SequencePointCollection._block
readonly MemoryBlock _block
Definition
SequencePointCollection.cs:154
System.Reflection.Metadata.SequencePointCollection.GetEnumerator
Enumerator GetEnumerator()
Definition
SequencePointCollection.cs:164
System.Reflection.Metadata.SequencePointCollection.SequencePointCollection
SequencePointCollection(MemoryBlock block, DocumentHandle document)
Definition
SequencePointCollection.cs:158
System.Reflection.Metadata.SequencePointCollection._document
readonly DocumentHandle _document
Definition
SequencePointCollection.cs:156
System.Reflection.Metadata.SequencePointCollection
Definition
SequencePointCollection.cs:9
System.Reflection.Metadata.SequencePoint.Document
DocumentHandle Document
Definition
SequencePoint.cs:12
System.Reflection.Metadata.SequencePoint.Offset
int Offset
Definition
SequencePoint.cs:14
System.Reflection.Metadata.SequencePoint
Definition
SequencePoint.cs:9
source
System.Reflection.Metadata
System.Reflection.Metadata
SequencePointCollection.cs
Generated by
1.10.0