Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches
NestedClassTableReader.cs
Go to the documentation of this file.
2
4
5internal readonly struct NestedClassTableReader
6{
7 internal readonly int NumberOfRows;
8
9 private readonly bool _IsTypeDefTableRowRefSizeSmall;
10
11 private readonly int _NestedClassOffset;
12
13 private readonly int _EnclosingClassOffset;
14
15 internal readonly int RowSize;
16
17 internal readonly MemoryBlock Block;
18
19 internal NestedClassTableReader(int numberOfRows, bool declaredSorted, int typeDefTableRowRefSize, MemoryBlock containingBlock, int containingBlockOffset)
20 {
21 NumberOfRows = numberOfRows;
22 _IsTypeDefTableRowRefSizeSmall = typeDefTableRowRefSize == 2;
24 _EnclosingClassOffset = _NestedClassOffset + typeDefTableRowRefSize;
25 RowSize = _EnclosingClassOffset + typeDefTableRowRefSize;
26 Block = containingBlock.GetMemoryBlockAt(containingBlockOffset, RowSize * numberOfRows);
27 if (!declaredSorted && !CheckSorted())
28 {
29 Throw.TableNotSorted(TableIndex.NestedClass);
30 }
31 }
32
38
44
54
59}
static void TableNotSorted(TableIndex tableIndex)
Definition Throw.cs:250
int PeekReference(int offset, bool smallRefSize)
unsafe MemoryBlock GetMemoryBlockAt(int offset, int length)
bool IsOrderedByReferenceAscending(int rowSize, int referenceOffset, bool isReferenceSmall)
int BinarySearchReference(int rowCount, int rowSize, int referenceOffset, uint referenceValue, bool isReferenceSmall)
TypeDefinitionHandle FindEnclosingType(TypeDefinitionHandle nestedTypeDef)
NestedClassTableReader(int numberOfRows, bool declaredSorted, int typeDefTableRowRefSize, MemoryBlock containingBlock, int containingBlockOffset)
static TypeDefinitionHandle FromRowId(int rowId)