Terraria
v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches
HasConstantTag.cs
Go to the documentation of this file.
1
using
System.Runtime.CompilerServices
;
2
3
namespace
System.Reflection.Metadata.Ecma335
;
4
5
internal
static
class
HasConstantTag
6
{
7
internal
const
int
NumberOfBits
= 2;
8
9
internal
const
int
LargeRowSize
= 16384;
10
11
internal
const
uint
Field
= 0u;
12
13
internal
const
uint
Param
= 1u;
14
15
internal
const
uint
Property
= 2u;
16
17
internal
const
uint
TagMask
= 3u;
18
19
internal
const
TableMask
TablesReferenced
= TableMask.Field | TableMask.Param |
TableMask
.Property;
20
21
internal
const
uint
TagToTokenTypeByteVector
= 1509380u;
22
23
[
MethodImpl
(
MethodImplOptions
.AggressiveInlining)]
24
internal
static
EntityHandle
ConvertToHandle
(uint hasConstant)
25
{
26
uint num = (uint)(1509380 >>> (
int
)((hasConstant & 3) << 3) << 24);
27
uint num2 = hasConstant >> 2;
28
if
(num == 0 || (num2 & 0xFF000000u) != 0)
29
{
30
Throw
.
InvalidCodedIndex
();
31
}
32
return
new
EntityHandle
(num | num2);
33
}
34
35
internal
static
uint
ConvertToTag
(
EntityHandle
token)
36
{
37
HandleKind
kind = token.
Kind
;
38
uint rowId = (uint)token.
RowId
;
39
return
kind
switch
40
{
41
HandleKind.FieldDefinition => (rowId << 2) | 0u,
42
HandleKind
.Parameter => (rowId << 2) | 1u,
43
HandleKind.PropertyDefinition => (rowId << 2) | 2u,
44
_ => 0u,
45
};
46
}
47
}
System.Reflection.Metadata.Ecma335.HasConstantTag.LargeRowSize
const int LargeRowSize
Definition
HasConstantTag.cs:9
System.Reflection.Metadata.Ecma335.HasConstantTag.ConvertToHandle
static EntityHandle ConvertToHandle(uint hasConstant)
Definition
HasConstantTag.cs:24
System.Reflection.Metadata.Ecma335.HasConstantTag.TagToTokenTypeByteVector
const uint TagToTokenTypeByteVector
Definition
HasConstantTag.cs:21
System.Reflection.Metadata.Ecma335.HasConstantTag.Field
const uint Field
Definition
HasConstantTag.cs:11
System.Reflection.Metadata.Ecma335.HasConstantTag.TablesReferenced
const TableMask TablesReferenced
Definition
HasConstantTag.cs:19
System.Reflection.Metadata.Ecma335.HasConstantTag.NumberOfBits
const int NumberOfBits
Definition
HasConstantTag.cs:7
System.Reflection.Metadata.Ecma335.HasConstantTag.Property
const uint Property
Definition
HasConstantTag.cs:15
System.Reflection.Metadata.Ecma335.HasConstantTag.Param
const uint Param
Definition
HasConstantTag.cs:13
System.Reflection.Metadata.Ecma335.HasConstantTag.ConvertToTag
static uint ConvertToTag(EntityHandle token)
Definition
HasConstantTag.cs:35
System.Reflection.Metadata.Ecma335.HasConstantTag.TagMask
const uint TagMask
Definition
HasConstantTag.cs:17
System.Reflection.Metadata.Ecma335.HasConstantTag
Definition
HasConstantTag.cs:6
System.Reflection.Throw.InvalidCodedIndex
static void InvalidCodedIndex()
Definition
Throw.cs:201
System.Reflection.Throw
Definition
Throw.cs:9
System.Reflection.Metadata.Ecma335.TableIndex.MethodImpl
@ MethodImpl
System.Reflection.Metadata.Ecma335.TableMask
TableMask
Definition
TableMask.cs:5
System.Reflection.Metadata.Ecma335
Definition
ArrayShapeEncoder.cs:3
System.Reflection.Metadata.HandleKind
HandleKind
Definition
HandleKind.cs:4
System.Runtime.CompilerServices.MethodImplOptions
MethodImplOptions
Definition
MethodImplOptions.cs:5
System.Runtime.CompilerServices
Definition
NullablePublicOnlyAttribute.cs:3
System.Reflection.Metadata.EntityHandle.RowId
int RowId
Definition
EntityHandle.cs:21
System.Reflection.Metadata.EntityHandle.Kind
HandleKind Kind
Definition
EntityHandle.cs:25
System.Reflection.Metadata.EntityHandle
Definition
EntityHandle.cs:6
source
System.Reflection.Metadata
System.Reflection.Metadata.Ecma335
HasConstantTag.cs
Generated by
1.10.0