• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

SamboyCoding / Cpp2IL / 29695731106

19 Jul 2026 04:52PM UTC coverage: 37.768% (-0.1%) from 37.872%
29695731106

push

github

SamboyCoding
Lib: v107 and v108 support. Fix v106.1 support.

2917 of 8660 branches covered (33.68%)

Branch coverage included in aggregate %.

85 of 196 new or added lines in 17 files covered. (43.37%)

14 existing lines in 4 files now uncovered.

5310 of 13123 relevant lines covered (40.46%)

176459.26 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

81.43
/LibCpp2IL/Metadata/Il2CppGlobalMetadataHeader.cs
1
namespace LibCpp2IL.Metadata;
2

3
public class Il2CppGlobalMetadataHeader : ReadableClass
4
{
5
    public uint magicNumber;
6
    public int version;
7

8
#nullable disable
9

10
    public Il2CppGlobalMetadataSectionHeader stringLiteral; // string data for managed code
11
    public Il2CppGlobalMetadataSectionHeader stringLiteralData;
12
    public Il2CppGlobalMetadataSectionHeader @string; // string data for metadata
13
    public Il2CppGlobalMetadataSectionHeader events; // Il2CppEventDefinition
14
    public Il2CppGlobalMetadataSectionHeader properties; // Il2CppPropertyDefinition
15
    public Il2CppGlobalMetadataSectionHeader methods; // Il2CppMethodDefinition
16
    public Il2CppGlobalMetadataSectionHeader parameterDefaultValues; // Il2CppParameterDefaultValue
17
    public Il2CppGlobalMetadataSectionHeader fieldDefaultValues; // Il2CppFieldDefaultValue
18
    public Il2CppGlobalMetadataSectionHeader fieldAndParameterDefaultValueData; // uint8_t
19
    public Il2CppGlobalMetadataSectionHeader fieldMarshaledSizes; // Il2CppFieldMarshaledSize
20
    public Il2CppGlobalMetadataSectionHeader parameters; // Il2CppParameterDefinition
21
    public Il2CppGlobalMetadataSectionHeader fields; // Il2CppFieldDefinition
22
    public Il2CppGlobalMetadataSectionHeader genericParameters; // Il2CppGenericParameter
23
    public Il2CppGlobalMetadataSectionHeader genericParameterConstraints; // TypeIndex
24
    public Il2CppGlobalMetadataSectionHeader genericContainers; // Il2CppGenericContainer
25
    public Il2CppGlobalMetadataSectionHeader nestedTypes; // TypeDefinitionIndex
26
    public Il2CppGlobalMetadataSectionHeader interfaces; // TypeIndex
27
    public Il2CppGlobalMetadataSectionHeader vtableMethods; // EncodedMethodIndex
28
    public Il2CppGlobalMetadataSectionHeader interfaceOffsets; // Il2CppInterfaceOffsetPair
29
    public Il2CppGlobalMetadataSectionHeader typeDefinitions; // Il2CppTypeDefinition
30

31
    [Version(Min = 104f)] public Il2CppGlobalMetadataSectionHeader typeInlineArrays; // Il2CppInlineArrayLength
32

33
    [Version(Max = 24.15f)] public Il2CppGlobalMetadataSectionHeader rgctxEntries; // Il2CppRGCTXDefinition
34

35
    public Il2CppGlobalMetadataSectionHeader images; // Il2CppImageDefinition
36
    public Il2CppGlobalMetadataSectionHeader assemblies; // Il2CppAssemblyDefinition
37

38
    [Version(Max = 24.5f)] public Il2CppGlobalMetadataSectionHeader metadataUsageLists; // Il2CppMetadataUsageList, Removed in v27
39
    [Version(Max = 24.5f)] public Il2CppGlobalMetadataSectionHeader metadataUsagePairs; // Il2CppMetadataUsagePair, Removed in v27
40

41
    public Il2CppGlobalMetadataSectionHeader fieldRefs; // Il2CppFieldRef
42
    public Il2CppGlobalMetadataSectionHeader referencedAssemblies; // int32_t
43

44
    //Pre-29 attribute data
45
    [Version(Max = 27.9f)] public Il2CppGlobalMetadataSectionHeader attributesInfo; // Il2CppCustomAttributeTypeRange
46
    [Version(Max = 27.9f)] public Il2CppGlobalMetadataSectionHeader attributeTypes; // TypeIndex
47

48
    //Post-29 attribute data
49
    [Version(Min = 27.9f)] public Il2CppGlobalMetadataSectionHeader attributeData; //uint8_t
50
    [Version(Min = 27.9f)] public Il2CppGlobalMetadataSectionHeader attributeDataRange; //Il2CppCustomAttributeDataRange
51

52
    public Il2CppGlobalMetadataSectionHeader unresolvedVirtualCallParameterTypes; // TypeIndex
53
    public Il2CppGlobalMetadataSectionHeader unresolvedVirtualCallParameterRanges; // Il2CppRange
54

55
    [Version(Min = 23)] public Il2CppGlobalMetadataSectionHeader windowsRuntimeTypeNames; // Il2CppWindowsRuntimeTypeNamePair
56

57
    [Version(Min = 27)] public Il2CppGlobalMetadataSectionHeader windowsRuntimeStrings; // const char*
58

59
    [Version(Min = 24)] public Il2CppGlobalMetadataSectionHeader exportedTypeDefinitions; // TypeDefinitionIndex
60

61
    [Version(Min = 108)] public Il2CppGlobalMetadataSectionHeader methodSpecsOnGenericType; // Il2CppMethodSpecOnGenericType
62
    [Version(Min = 108)] public Il2CppGlobalMetadataSectionHeader genericMethodSpecsOnType; // Il2CppGenericMethodSpecOnType
63
    [Version(Min = 108)] public Il2CppGlobalMetadataSectionHeader methodSpecs; // Il2CppMethodSpec
64
    [Version(Min = 108)] public Il2CppGlobalMetadataSectionHeader genericMethodFunctionsDefinitions; // Il2CppGenericMethodFunctionsDefinitions
65
    [Version(Min = 108)] public Il2CppGlobalMetadataSectionHeader genericMethodFunctionsDefinitionsWithAdjustor; // Il2CppGenericMethodFunctionsDefinitionsWithAdjustor
66
    [Version(Min = 108)] public Il2CppGlobalMetadataSectionHeader invokerIndices; // InvokerTableIndex per method, per image, in image order
67
    [Version(Min = 108)] public Il2CppGlobalMetadataSectionHeader rgctxRanges; // Il2CppTokenRangePair (token + global start + length), per image in image order
68
    [Version(Min = 108)] public Il2CppGlobalMetadataSectionHeader rgctxValues; // Il2CppRGCTXDefinition (byte type + int32 data)
69
    [Version(Min = 108)] public Il2CppGlobalMetadataSectionHeader staticConstructorTypeIndices; // TypeDefinitionIndex per eager-init type, per image in image order
70

71
#nullable restore
72

73
    public override void Read(ClassReadingBinaryReader reader)
74
    {
75
        magicNumber = reader.ReadUInt32();
43✔
76
        version = reader.ReadInt32();
43✔
77

78
        stringLiteral = reader.ReadReadableHereNoLock<Il2CppGlobalMetadataSectionHeader>();
43✔
79
        stringLiteralData = reader.ReadReadableHereNoLock<Il2CppGlobalMetadataSectionHeader>();
43✔
80
        @string = reader.ReadReadableHereNoLock<Il2CppGlobalMetadataSectionHeader>();
43✔
81
        events = reader.ReadReadableHereNoLock<Il2CppGlobalMetadataSectionHeader>();
43✔
82
        properties = reader.ReadReadableHereNoLock<Il2CppGlobalMetadataSectionHeader>();
43✔
83
        methods = reader.ReadReadableHereNoLock<Il2CppGlobalMetadataSectionHeader>();
43✔
84
        parameterDefaultValues = reader.ReadReadableHereNoLock<Il2CppGlobalMetadataSectionHeader>();
43✔
85
        fieldDefaultValues = reader.ReadReadableHereNoLock<Il2CppGlobalMetadataSectionHeader>();
43✔
86
        fieldAndParameterDefaultValueData = reader.ReadReadableHereNoLock<Il2CppGlobalMetadataSectionHeader>();
43✔
87
        fieldMarshaledSizes = reader.ReadReadableHereNoLock<Il2CppGlobalMetadataSectionHeader>();
43✔
88
        parameters = reader.ReadReadableHereNoLock<Il2CppGlobalMetadataSectionHeader>();
43✔
89
        fields = reader.ReadReadableHereNoLock<Il2CppGlobalMetadataSectionHeader>();
43✔
90
        genericParameters = reader.ReadReadableHereNoLock<Il2CppGlobalMetadataSectionHeader>();
43✔
91
        genericParameterConstraints = reader.ReadReadableHereNoLock<Il2CppGlobalMetadataSectionHeader>();
43✔
92
        genericContainers = reader.ReadReadableHereNoLock<Il2CppGlobalMetadataSectionHeader>();
43✔
93
        nestedTypes = reader.ReadReadableHereNoLock<Il2CppGlobalMetadataSectionHeader>();
43✔
94
        interfaces = reader.ReadReadableHereNoLock<Il2CppGlobalMetadataSectionHeader>();
43✔
95
        vtableMethods = reader.ReadReadableHereNoLock<Il2CppGlobalMetadataSectionHeader>();
43✔
96
        interfaceOffsets = reader.ReadReadableHereNoLock<Il2CppGlobalMetadataSectionHeader>();
43✔
97
        typeDefinitions = reader.ReadReadableHereNoLock<Il2CppGlobalMetadataSectionHeader>();
43✔
98

99
        if (IsAtLeast(104f))
43✔
100
            typeInlineArrays = reader.ReadReadableHereNoLock<Il2CppGlobalMetadataSectionHeader>();
1✔
101

102
        if (IsAtMost(24.15f))
43!
103
            rgctxEntries = reader.ReadReadableHereNoLock<Il2CppGlobalMetadataSectionHeader>();
×
104

105
        images = reader.ReadReadableHereNoLock<Il2CppGlobalMetadataSectionHeader>();
43✔
106
        assemblies = reader.ReadReadableHereNoLock<Il2CppGlobalMetadataSectionHeader>();
43✔
107

108
        if (IsLessThan(27f))
43✔
109
        {
110
            metadataUsageLists = reader.ReadReadableHereNoLock<Il2CppGlobalMetadataSectionHeader>();
28✔
111
            metadataUsagePairs = reader.ReadReadableHereNoLock<Il2CppGlobalMetadataSectionHeader>();
28✔
112
        }
113

114
        fieldRefs = reader.ReadReadableHereNoLock<Il2CppGlobalMetadataSectionHeader>();
43✔
115
        referencedAssemblies = reader.ReadReadableHereNoLock<Il2CppGlobalMetadataSectionHeader>();
43✔
116

117
        if (IsLessThan(29f))
43✔
118
        {
119
            attributesInfo = reader.ReadReadableHereNoLock<Il2CppGlobalMetadataSectionHeader>();
28✔
120
            attributeTypes = reader.ReadReadableHereNoLock<Il2CppGlobalMetadataSectionHeader>();
28✔
121
        }
122
        else
123
        {
124
            attributeData = reader.ReadReadableHereNoLock<Il2CppGlobalMetadataSectionHeader>();
15✔
125
            attributeDataRange = reader.ReadReadableHereNoLock<Il2CppGlobalMetadataSectionHeader>();
15✔
126
        }
127

128
        unresolvedVirtualCallParameterTypes = reader.ReadReadableHereNoLock<Il2CppGlobalMetadataSectionHeader>();
43✔
129
        unresolvedVirtualCallParameterRanges = reader.ReadReadableHereNoLock<Il2CppGlobalMetadataSectionHeader>();
43✔
130
        windowsRuntimeTypeNames = reader.ReadReadableHereNoLock<Il2CppGlobalMetadataSectionHeader>();
43✔
131

132
        if (IsAtLeast(27f))
43✔
133
            windowsRuntimeStrings = reader.ReadReadableHereNoLock<Il2CppGlobalMetadataSectionHeader>();
15✔
134

135
        if (IsAtLeast(24f))
43!
136
            exportedTypeDefinitions = reader.ReadReadableHereNoLock<Il2CppGlobalMetadataSectionHeader>();
43✔
137

138
        if (IsAtLeast(108))
43!
139
        {
NEW
140
            methodSpecsOnGenericType = reader.ReadReadableHereNoLock<Il2CppGlobalMetadataSectionHeader>();
×
NEW
141
            genericMethodSpecsOnType = reader.ReadReadableHereNoLock<Il2CppGlobalMetadataSectionHeader>();
×
NEW
142
            methodSpecs = reader.ReadReadableHereNoLock<Il2CppGlobalMetadataSectionHeader>();
×
NEW
143
            genericMethodFunctionsDefinitions = reader.ReadReadableHereNoLock<Il2CppGlobalMetadataSectionHeader>();
×
NEW
144
            genericMethodFunctionsDefinitionsWithAdjustor = reader.ReadReadableHereNoLock<Il2CppGlobalMetadataSectionHeader>();
×
NEW
145
            invokerIndices = reader.ReadReadableHereNoLock<Il2CppGlobalMetadataSectionHeader>();
×
NEW
146
            rgctxRanges = reader.ReadReadableHereNoLock<Il2CppGlobalMetadataSectionHeader>();
×
NEW
147
            rgctxValues = reader.ReadReadableHereNoLock<Il2CppGlobalMetadataSectionHeader>();
×
NEW
148
            staticConstructorTypeIndices = reader.ReadReadableHereNoLock<Il2CppGlobalMetadataSectionHeader>();
×
149
        }
150
    }
43✔
151
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc