Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches
HasCustomDebugInformationTag.cs
Go to the documentation of this file.
2
4
5internal static class HasCustomDebugInformationTag
6{
7 internal const int NumberOfBits = 5;
8
9 internal const int LargeRowSize = 2048;
10
11 internal const uint MethodDef = 0u;
12
13 internal const uint Field = 1u;
14
15 internal const uint TypeRef = 2u;
16
17 internal const uint TypeDef = 3u;
18
19 internal const uint Param = 4u;
20
21 internal const uint InterfaceImpl = 5u;
22
23 internal const uint MemberRef = 6u;
24
25 internal const uint Module = 7u;
26
27 internal const uint DeclSecurity = 8u;
28
29 internal const uint Property = 9u;
30
31 internal const uint Event = 10u;
32
33 internal const uint StandAloneSig = 11u;
34
35 internal const uint ModuleRef = 12u;
36
37 internal const uint TypeSpec = 13u;
38
39 internal const uint Assembly = 14u;
40
41 internal const uint AssemblyRef = 15u;
42
43 internal const uint File = 16u;
44
45 internal const uint ExportedType = 17u;
46
47 internal const uint ManifestResource = 18u;
48
49 internal const uint GenericParam = 19u;
50
51 internal const uint GenericParamConstraint = 20u;
52
53 internal const uint MethodSpec = 21u;
54
55 internal const uint Document = 22u;
56
57 internal const uint LocalScope = 23u;
58
59 internal const uint LocalVariable = 24u;
60
61 internal const uint LocalConstant = 25u;
62
63 internal const uint Import = 26u;
64
65 internal const uint TagMask = 31u;
66
67 internal const uint InvalidTokenType = uint.MaxValue;
68
69 internal static uint[] TagToTokenTypeArray = new uint[32]
70 {
71 100663296u, 67108864u, 16777216u, 33554432u, 134217728u, 150994944u, 167772160u, 0u, 234881024u, 385875968u,
72 335544320u, 285212672u, 436207616u, 452984832u, 536870912u, 587202560u, 637534208u, 654311424u, 671088640u, 704643072u,
73 738197504u, 721420288u, 805306368u, 838860800u, 855638016u, 872415232u, 889192448u, 4294967295u, 4294967295u, 4294967295u,
74 4294967295u, 4294967295u
75 };
76
77 internal const TableMask TablesReferenced = TableMask.Module | TableMask.TypeRef | TableMask.TypeDef | TableMask.Field | TableMask.MethodDef | TableMask.Param | TableMask.InterfaceImpl | TableMask.MemberRef | TableMask.DeclSecurity | TableMask.StandAloneSig | TableMask.Event | TableMask.Property | TableMask.ModuleRef | TableMask.TypeSpec | TableMask.Assembly | TableMask.AssemblyRef | TableMask.File | TableMask.ExportedType | TableMask.ManifestResource | TableMask.GenericParam | TableMask.MethodSpec | TableMask.GenericParamConstraint | TableMask.Document | TableMask.LocalScope | TableMask.LocalVariable | TableMask.LocalConstant | TableMask.ImportScope;
78
79 [MethodImpl(MethodImplOptions.AggressiveInlining)]
80 internal static EntityHandle ConvertToHandle(uint taggedReference)
81 {
82 uint num = TagToTokenTypeArray[taggedReference & 0x1F];
83 uint num2 = taggedReference >> 5;
84 if (num == uint.MaxValue || (num2 & 0xFF000000u) != 0)
85 {
87 }
88 return new EntityHandle(num | num2);
89 }
90
91 internal static uint ConvertToTag(EntityHandle handle)
92 {
93 uint type = handle.Type;
94 uint rowId = (uint)handle.RowId;
95 return (type >> 24) switch
96 {
97 6u => (rowId << 5) | 0u,
98 4u => (rowId << 5) | 1u,
99 1u => (rowId << 5) | 2u,
100 2u => (rowId << 5) | 3u,
101 8u => (rowId << 5) | 4u,
102 9u => (rowId << 5) | 5u,
103 10u => (rowId << 5) | 6u,
104 0u => (rowId << 5) | 7u,
105 14u => (rowId << 5) | 8u,
106 23u => (rowId << 5) | 9u,
107 20u => (rowId << 5) | 0xAu,
108 17u => (rowId << 5) | 0xBu,
109 26u => (rowId << 5) | 0xCu,
110 27u => (rowId << 5) | 0xDu,
111 32u => (rowId << 5) | 0xEu,
112 35u => (rowId << 5) | 0xFu,
113 38u => (rowId << 5) | 0x10u,
114 39u => (rowId << 5) | 0x11u,
115 40u => (rowId << 5) | 0x12u,
116 42u => (rowId << 5) | 0x13u,
117 44u => (rowId << 5) | 0x14u,
118 43u => (rowId << 5) | 0x15u,
119 48u => (rowId << 5) | 0x16u,
120 50u => (rowId << 5) | 0x17u,
121 51u => (rowId << 5) | 0x18u,
122 52u => (rowId << 5) | 0x19u,
123 53u => (rowId << 5) | 0x1Au,
124 _ => 0u,
125 };
126 }
127}
static void InvalidCodedIndex()
Definition Throw.cs:201