Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches
MethodTableReader.cs
Go to the documentation of this file.
2
4
5internal readonly struct MethodTableReader
6{
7 internal readonly int NumberOfRows;
8
9 private readonly bool _IsParamRefSizeSmall;
10
11 private readonly bool _IsStringHeapRefSizeSmall;
12
13 private readonly bool _IsBlobHeapRefSizeSmall;
14
15 private readonly int _RvaOffset;
16
17 private readonly int _ImplFlagsOffset;
18
19 private readonly int _FlagsOffset;
20
21 private readonly int _NameOffset;
22
23 private readonly int _SignatureOffset;
24
25 private readonly int _ParamListOffset;
26
27 internal readonly int RowSize;
28
29 internal readonly MemoryBlock Block;
30
31 internal MethodTableReader(int numberOfRows, int paramRefSize, int stringHeapRefSize, int blobHeapRefSize, MemoryBlock containingBlock, int containingBlockOffset)
32 {
33 NumberOfRows = numberOfRows;
34 _IsParamRefSizeSmall = paramRefSize == 2;
35 _IsStringHeapRefSizeSmall = stringHeapRefSize == 2;
36 _IsBlobHeapRefSizeSmall = blobHeapRefSize == 2;
37 _RvaOffset = 0;
41 _SignatureOffset = _NameOffset + stringHeapRefSize;
42 _ParamListOffset = _SignatureOffset + blobHeapRefSize;
43 RowSize = _ParamListOffset + paramRefSize;
44 Block = containingBlock.GetMemoryBlockAt(containingBlockOffset, RowSize * numberOfRows);
45 }
46
47 internal int GetParamStart(int rowId)
48 {
49 int num = (rowId - 1) * RowSize;
51 }
52
58
60 {
61 int num = (handle.RowId - 1) * RowSize;
62 return Block.PeekInt32(num + _RvaOffset);
63 }
64
70
72 {
73 int num = (handle.RowId - 1) * RowSize;
75 }
76
78 {
79 int num = (handle.RowId - 1) * RowSize;
81 }
82}
int PeekReference(int offset, bool smallRefSize)
unsafe ushort PeekUInt16(int offset)
unsafe MemoryBlock GetMemoryBlockAt(int offset, int length)
int PeekHeapReference(int offset, bool smallRefSize)
static BlobHandle FromOffset(int heapOffset)
Definition BlobHandle.cs:34
MethodTableReader(int numberOfRows, int paramRefSize, int stringHeapRefSize, int blobHeapRefSize, MemoryBlock containingBlock, int containingBlockOffset)
StringHandle GetName(MethodDefinitionHandle handle)
BlobHandle GetSignature(MethodDefinitionHandle handle)
MethodAttributes GetFlags(MethodDefinitionHandle handle)
MethodImplAttributes GetImplFlags(MethodDefinitionHandle handle)
static StringHandle FromOffset(int heapOffset)