Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches
LocalVariableTableReader.cs
Go to the documentation of this file.
2
4
5internal readonly struct LocalVariableTableReader
6{
7 internal readonly int NumberOfRows;
8
9 private readonly bool _isStringHeapRefSizeSmall;
10
11 private readonly int _attributesOffset;
12
13 private readonly int _indexOffset;
14
15 private readonly int _nameOffset;
16
17 internal readonly int RowSize;
18
19 internal readonly MemoryBlock Block;
20
21 internal LocalVariableTableReader(int numberOfRows, int stringHeapRefSize, MemoryBlock containingBlock, int containingBlockOffset)
22 {
23 NumberOfRows = numberOfRows;
24 _isStringHeapRefSizeSmall = stringHeapRefSize == 2;
28 RowSize = _nameOffset + stringHeapRefSize;
29 Block = containingBlock.GetMemoryBlockAt(containingBlockOffset, RowSize * numberOfRows);
30 }
31
33 {
34 int num = (handle.RowId - 1) * RowSize;
36 }
37
39 {
40 int num = (handle.RowId - 1) * RowSize;
41 return Block.PeekUInt16(num + _indexOffset);
42 }
43
49}
unsafe ushort PeekUInt16(int offset)
unsafe MemoryBlock GetMemoryBlockAt(int offset, int length)
int PeekHeapReference(int offset, bool smallRefSize)
LocalVariableAttributes GetAttributes(LocalVariableHandle handle)
LocalVariableTableReader(int numberOfRows, int stringHeapRefSize, MemoryBlock containingBlock, int containingBlockOffset)
static StringHandle FromOffset(int heapOffset)