Terraria
v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches
AssemblyTableReader.cs
Go to the documentation of this file.
1
using
System.Reflection.Internal
;
2
3
namespace
System.Reflection.Metadata.Ecma335
;
4
5
internal
readonly
struct
AssemblyTableReader
6
{
7
internal
readonly
int
NumberOfRows
;
8
9
private
readonly
bool
_IsStringHeapRefSizeSmall
;
10
11
private
readonly
bool
_IsBlobHeapRefSizeSmall
;
12
13
private
readonly
int
_HashAlgIdOffset
;
14
15
private
readonly
int
_MajorVersionOffset
;
16
17
private
readonly
int
_MinorVersionOffset
;
18
19
private
readonly
int
_BuildNumberOffset
;
20
21
private
readonly
int
_RevisionNumberOffset
;
22
23
private
readonly
int
_FlagsOffset
;
24
25
private
readonly
int
_PublicKeyOffset
;
26
27
private
readonly
int
_NameOffset
;
28
29
private
readonly
int
_CultureOffset
;
30
31
internal
readonly
int
RowSize
;
32
33
internal
readonly
MemoryBlock
Block
;
34
35
internal
AssemblyTableReader
(
int
numberOfRows,
int
stringHeapRefSize,
int
blobHeapRefSize,
MemoryBlock
containingBlock,
int
containingBlockOffset)
36
{
37
NumberOfRows
= ((numberOfRows > 1) ? 1 : numberOfRows);
38
_IsStringHeapRefSizeSmall
= stringHeapRefSize == 2;
39
_IsBlobHeapRefSizeSmall
= blobHeapRefSize == 2;
40
_HashAlgIdOffset
= 0;
41
_MajorVersionOffset
=
_HashAlgIdOffset
+ 4;
42
_MinorVersionOffset
=
_MajorVersionOffset
+ 2;
43
_BuildNumberOffset
=
_MinorVersionOffset
+ 2;
44
_RevisionNumberOffset
=
_BuildNumberOffset
+ 2;
45
_FlagsOffset
=
_RevisionNumberOffset
+ 2;
46
_PublicKeyOffset
=
_FlagsOffset
+ 4;
47
_NameOffset
=
_PublicKeyOffset
+ blobHeapRefSize;
48
_CultureOffset
=
_NameOffset
+ stringHeapRefSize;
49
RowSize
=
_CultureOffset
+ stringHeapRefSize;
50
Block
= containingBlock.
GetMemoryBlockAt
(containingBlockOffset,
RowSize
* numberOfRows);
51
}
52
53
internal
AssemblyHashAlgorithm
GetHashAlgorithm
()
54
{
55
return
(
AssemblyHashAlgorithm
)
Block
.
PeekUInt32
(
_HashAlgIdOffset
);
56
}
57
58
internal
Version
GetVersion
()
59
{
60
return
new
Version
(
Block
.
PeekUInt16
(
_MajorVersionOffset
),
Block
.
PeekUInt16
(
_MinorVersionOffset
),
Block
.
PeekUInt16
(
_BuildNumberOffset
),
Block
.
PeekUInt16
(
_RevisionNumberOffset
));
61
}
62
63
internal
AssemblyFlags
GetFlags
()
64
{
65
return
(
AssemblyFlags
)
Block
.
PeekUInt32
(
_FlagsOffset
);
66
}
67
68
internal
BlobHandle
GetPublicKey
()
69
{
70
return
BlobHandle
.
FromOffset
(
Block
.
PeekHeapReference
(
_PublicKeyOffset
,
_IsBlobHeapRefSizeSmall
));
71
}
72
73
internal
StringHandle
GetName
()
74
{
75
return
StringHandle
.
FromOffset
(
Block
.
PeekHeapReference
(
_NameOffset
,
_IsStringHeapRefSizeSmall
));
76
}
77
78
internal
StringHandle
GetCulture
()
79
{
80
return
StringHandle
.
FromOffset
(
Block
.
PeekHeapReference
(
_CultureOffset
,
_IsStringHeapRefSizeSmall
));
81
}
82
}
System.Version
Definition
Version.cs:10
System.Reflection.Internal
Definition
AbstractMemoryBlock.cs:4
System.Reflection.Metadata.Ecma335
Definition
ArrayShapeEncoder.cs:3
System.Reflection.AssemblyFlags
AssemblyFlags
Definition
AssemblyFlags.cs:5
System.Reflection.AssemblyHashAlgorithm
AssemblyHashAlgorithm
Definition
AssemblyHashAlgorithm.cs:4
System.Reflection.Internal.MemoryBlock.PeekUInt16
unsafe ushort PeekUInt16(int offset)
Definition
MemoryBlock.cs:166
System.Reflection.Internal.MemoryBlock.GetMemoryBlockAt
unsafe MemoryBlock GetMemoryBlockAt(int offset, int length)
Definition
MemoryBlock.cs:102
System.Reflection.Internal.MemoryBlock.PeekHeapReference
int PeekHeapReference(int offset, bool smallRefSize)
Definition
MemoryBlock.cs:201
System.Reflection.Internal.MemoryBlock.PeekUInt32
unsafe uint PeekUInt32(int offset)
Definition
MemoryBlock.cs:125
System.Reflection.Internal.MemoryBlock
Definition
MemoryBlock.cs:11
System.Reflection.Metadata.BlobHandle.FromOffset
static BlobHandle FromOffset(int heapOffset)
Definition
BlobHandle.cs:34
System.Reflection.Metadata.BlobHandle
Definition
BlobHandle.cs:6
System.Reflection.Metadata.Ecma335.AssemblyTableReader._NameOffset
readonly int _NameOffset
Definition
AssemblyTableReader.cs:27
System.Reflection.Metadata.Ecma335.AssemblyTableReader.GetPublicKey
BlobHandle GetPublicKey()
Definition
AssemblyTableReader.cs:68
System.Reflection.Metadata.Ecma335.AssemblyTableReader._IsBlobHeapRefSizeSmall
readonly bool _IsBlobHeapRefSizeSmall
Definition
AssemblyTableReader.cs:11
System.Reflection.Metadata.Ecma335.AssemblyTableReader.GetFlags
AssemblyFlags GetFlags()
Definition
AssemblyTableReader.cs:63
System.Reflection.Metadata.Ecma335.AssemblyTableReader.RowSize
readonly int RowSize
Definition
AssemblyTableReader.cs:31
System.Reflection.Metadata.Ecma335.AssemblyTableReader._BuildNumberOffset
readonly int _BuildNumberOffset
Definition
AssemblyTableReader.cs:19
System.Reflection.Metadata.Ecma335.AssemblyTableReader._RevisionNumberOffset
readonly int _RevisionNumberOffset
Definition
AssemblyTableReader.cs:21
System.Reflection.Metadata.Ecma335.AssemblyTableReader.GetVersion
Version GetVersion()
Definition
AssemblyTableReader.cs:58
System.Reflection.Metadata.Ecma335.AssemblyTableReader._PublicKeyOffset
readonly int _PublicKeyOffset
Definition
AssemblyTableReader.cs:25
System.Reflection.Metadata.Ecma335.AssemblyTableReader._IsStringHeapRefSizeSmall
readonly bool _IsStringHeapRefSizeSmall
Definition
AssemblyTableReader.cs:9
System.Reflection.Metadata.Ecma335.AssemblyTableReader.GetCulture
StringHandle GetCulture()
Definition
AssemblyTableReader.cs:78
System.Reflection.Metadata.Ecma335.AssemblyTableReader._FlagsOffset
readonly int _FlagsOffset
Definition
AssemblyTableReader.cs:23
System.Reflection.Metadata.Ecma335.AssemblyTableReader._CultureOffset
readonly int _CultureOffset
Definition
AssemblyTableReader.cs:29
System.Reflection.Metadata.Ecma335.AssemblyTableReader.AssemblyTableReader
AssemblyTableReader(int numberOfRows, int stringHeapRefSize, int blobHeapRefSize, MemoryBlock containingBlock, int containingBlockOffset)
Definition
AssemblyTableReader.cs:35
System.Reflection.Metadata.Ecma335.AssemblyTableReader._HashAlgIdOffset
readonly int _HashAlgIdOffset
Definition
AssemblyTableReader.cs:13
System.Reflection.Metadata.Ecma335.AssemblyTableReader.Block
readonly MemoryBlock Block
Definition
AssemblyTableReader.cs:33
System.Reflection.Metadata.Ecma335.AssemblyTableReader._MinorVersionOffset
readonly int _MinorVersionOffset
Definition
AssemblyTableReader.cs:17
System.Reflection.Metadata.Ecma335.AssemblyTableReader.NumberOfRows
readonly int NumberOfRows
Definition
AssemblyTableReader.cs:7
System.Reflection.Metadata.Ecma335.AssemblyTableReader.GetHashAlgorithm
AssemblyHashAlgorithm GetHashAlgorithm()
Definition
AssemblyTableReader.cs:53
System.Reflection.Metadata.Ecma335.AssemblyTableReader.GetName
StringHandle GetName()
Definition
AssemblyTableReader.cs:73
System.Reflection.Metadata.Ecma335.AssemblyTableReader._MajorVersionOffset
readonly int _MajorVersionOffset
Definition
AssemblyTableReader.cs:15
System.Reflection.Metadata.Ecma335.AssemblyTableReader
Definition
AssemblyTableReader.cs:6
System.Reflection.Metadata.StringHandle.FromOffset
static StringHandle FromOffset(int heapOffset)
Definition
StringHandle.cs:98
System.Reflection.Metadata.StringHandle
Definition
StringHandle.cs:6
source
System.Reflection.Metadata
System.Reflection.Metadata.Ecma335
AssemblyTableReader.cs
Generated by
1.10.0