Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches
FieldMarshalTableReader.cs
Go to the documentation of this file.
2
4
5internal readonly struct FieldMarshalTableReader
6{
7 internal readonly int NumberOfRows;
8
9 private readonly bool _IsHasFieldMarshalRefSizeSmall;
10
11 private readonly bool _IsBlobHeapRefSizeSmall;
12
13 private readonly int _ParentOffset;
14
15 private readonly int _NativeTypeOffset;
16
17 internal readonly int RowSize;
18
19 internal readonly MemoryBlock Block;
20
21 internal FieldMarshalTableReader(int numberOfRows, bool declaredSorted, int hasFieldMarshalRefSize, int blobHeapRefSize, MemoryBlock containingBlock, int containingBlockOffset)
22 {
23 NumberOfRows = numberOfRows;
24 _IsHasFieldMarshalRefSizeSmall = hasFieldMarshalRefSize == 2;
25 _IsBlobHeapRefSizeSmall = blobHeapRefSize == 2;
26 _ParentOffset = 0;
27 _NativeTypeOffset = _ParentOffset + hasFieldMarshalRefSize;
28 RowSize = _NativeTypeOffset + blobHeapRefSize;
29 Block = containingBlock.GetMemoryBlockAt(containingBlockOffset, RowSize * numberOfRows);
30 if (!declaredSorted && !CheckSorted())
31 {
32 Throw.TableNotSorted(TableIndex.FieldMarshal);
33 }
34 }
35
36 internal EntityHandle GetParent(int rowId)
37 {
38 int num = (rowId - 1) * RowSize;
40 }
41
42 internal BlobHandle GetNativeType(int rowId)
43 {
44 int num = (rowId - 1) * RowSize;
46 }
47
53
58}
static EntityHandle ConvertToHandle(uint hasFieldMarshal)
static void TableNotSorted(TableIndex tableIndex)
Definition Throw.cs:250
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)
int PeekHeapReference(int offset, bool smallRefSize)
uint PeekTaggedReference(int offset, bool smallRefSize)
static BlobHandle FromOffset(int heapOffset)
Definition BlobHandle.cs:34
FieldMarshalTableReader(int numberOfRows, bool declaredSorted, int hasFieldMarshalRefSize, int blobHeapRefSize, MemoryBlock containingBlock, int containingBlockOffset)