Terraria
v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches
MethodPtrTableReader.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
MethodPtrTableReader
6
{
7
internal
readonly
int
NumberOfRows
;
8
9
private
readonly
bool
_IsMethodTableRowRefSizeSmall
;
10
11
private
readonly
int
_MethodOffset
;
12
13
internal
readonly
int
RowSize
;
14
15
internal
readonly
MemoryBlock
Block
;
16
17
internal
MethodPtrTableReader
(
int
numberOfRows,
int
methodTableRowRefSize,
MemoryBlock
containingBlock,
int
containingBlockOffset)
18
{
19
NumberOfRows
= numberOfRows;
20
_IsMethodTableRowRefSizeSmall
= methodTableRowRefSize == 2;
21
_MethodOffset
= 0;
22
RowSize
=
_MethodOffset
+ methodTableRowRefSize;
23
Block
= containingBlock.
GetMemoryBlockAt
(containingBlockOffset,
RowSize
* numberOfRows);
24
}
25
26
internal
MethodDefinitionHandle
GetMethodFor
(
int
rowId)
27
{
28
int
num = (rowId - 1) *
RowSize
;
29
return
MethodDefinitionHandle
.
FromRowId
(
Block
.
PeekReference
(num +
_MethodOffset
,
_IsMethodTableRowRefSizeSmall
));
30
}
31
32
internal
int
GetRowIdForMethodDefRow
(
int
methodDefRowId)
33
{
34
return
Block
.
LinearSearchReference
(
RowSize
,
_MethodOffset
, (uint)methodDefRowId,
_IsMethodTableRowRefSizeSmall
) + 1;
35
}
36
}
System.Reflection.Internal
Definition
AbstractMemoryBlock.cs:4
System.Reflection.Metadata.Ecma335
Definition
ArrayShapeEncoder.cs:3
System.Reflection.Internal.MemoryBlock.PeekReference
int PeekReference(int offset, bool smallRefSize)
Definition
MemoryBlock.cs:187
System.Reflection.Internal.MemoryBlock.GetMemoryBlockAt
unsafe MemoryBlock GetMemoryBlockAt(int offset, int length)
Definition
MemoryBlock.cs:102
System.Reflection.Internal.MemoryBlock.LinearSearchReference
int LinearSearchReference(int rowSize, int referenceOffset, uint referenceValue, bool isReferenceSmall)
Definition
MemoryBlock.cs:598
System.Reflection.Internal.MemoryBlock
Definition
MemoryBlock.cs:11
System.Reflection.Metadata.Ecma335.MethodPtrTableReader._IsMethodTableRowRefSizeSmall
readonly bool _IsMethodTableRowRefSizeSmall
Definition
MethodPtrTableReader.cs:9
System.Reflection.Metadata.Ecma335.MethodPtrTableReader.Block
readonly MemoryBlock Block
Definition
MethodPtrTableReader.cs:15
System.Reflection.Metadata.Ecma335.MethodPtrTableReader.NumberOfRows
readonly int NumberOfRows
Definition
MethodPtrTableReader.cs:7
System.Reflection.Metadata.Ecma335.MethodPtrTableReader.MethodPtrTableReader
MethodPtrTableReader(int numberOfRows, int methodTableRowRefSize, MemoryBlock containingBlock, int containingBlockOffset)
Definition
MethodPtrTableReader.cs:17
System.Reflection.Metadata.Ecma335.MethodPtrTableReader.GetRowIdForMethodDefRow
int GetRowIdForMethodDefRow(int methodDefRowId)
Definition
MethodPtrTableReader.cs:32
System.Reflection.Metadata.Ecma335.MethodPtrTableReader.GetMethodFor
MethodDefinitionHandle GetMethodFor(int rowId)
Definition
MethodPtrTableReader.cs:26
System.Reflection.Metadata.Ecma335.MethodPtrTableReader._MethodOffset
readonly int _MethodOffset
Definition
MethodPtrTableReader.cs:11
System.Reflection.Metadata.Ecma335.MethodPtrTableReader.RowSize
readonly int RowSize
Definition
MethodPtrTableReader.cs:13
System.Reflection.Metadata.Ecma335.MethodPtrTableReader
Definition
MethodPtrTableReader.cs:6
System.Reflection.Metadata.MethodDefinitionHandle.FromRowId
static MethodDefinitionHandle FromRowId(int rowId)
Definition
MethodDefinitionHandle.cs:16
System.Reflection.Metadata.MethodDefinitionHandle
Definition
MethodDefinitionHandle.cs:4
source
System.Reflection.Metadata
System.Reflection.Metadata.Ecma335
MethodPtrTableReader.cs
Generated by
1.10.0