Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches
MethodSpecTableReader.cs
Go to the documentation of this file.
2
4
5internal readonly struct MethodSpecTableReader
6{
7 internal readonly int NumberOfRows;
8
9 private readonly bool _IsMethodDefOrRefRefSizeSmall;
10
11 private readonly bool _IsBlobHeapRefSizeSmall;
12
13 private readonly int _MethodOffset;
14
15 private readonly int _InstantiationOffset;
16
17 internal readonly int RowSize;
18
19 internal readonly MemoryBlock Block;
20
21 internal MethodSpecTableReader(int numberOfRows, int methodDefOrRefRefSize, int blobHeapRefSize, MemoryBlock containingBlock, int containingBlockOffset)
22 {
23 NumberOfRows = numberOfRows;
24 _IsMethodDefOrRefRefSizeSmall = methodDefOrRefRefSize == 2;
25 _IsBlobHeapRefSizeSmall = blobHeapRefSize == 2;
26 _MethodOffset = 0;
27 _InstantiationOffset = _MethodOffset + methodDefOrRefRefSize;
28 RowSize = _InstantiationOffset + blobHeapRefSize;
29 Block = containingBlock.GetMemoryBlockAt(containingBlockOffset, RowSize * numberOfRows);
30 }
31
37
43}
static EntityHandle ConvertToHandle(uint methodDefOrRef)
unsafe MemoryBlock GetMemoryBlockAt(int offset, int length)
int PeekHeapReference(int offset, bool smallRefSize)
uint PeekTaggedReference(int offset, bool smallRefSize)
static BlobHandle FromOffset(int heapOffset)
Definition BlobHandle.cs:34
EntityHandle GetMethod(MethodSpecificationHandle handle)
BlobHandle GetInstantiation(MethodSpecificationHandle handle)
MethodSpecTableReader(int numberOfRows, int methodDefOrRefRefSize, int blobHeapRefSize, MemoryBlock containingBlock, int containingBlockOffset)