From 0f8b1428e4dabbbbd1edadb5582c48d35254527f Mon Sep 17 00:00:00 2001 From: Katy Coe Date: Mon, 11 Nov 2019 20:44:10 +0100 Subject: [PATCH] IL2CPP: Read generic constraints data --- Il2CppInspector/Il2CppInspector.cs | 1 + Il2CppInspector/Metadata.cs | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/Il2CppInspector/Il2CppInspector.cs b/Il2CppInspector/Il2CppInspector.cs index baecff0..4ca8be6 100644 --- a/Il2CppInspector/Il2CppInspector.cs +++ b/Il2CppInspector/Il2CppInspector.cs @@ -33,6 +33,7 @@ namespace Il2CppInspector public Il2CppEventDefinition[] Events => Metadata.Events; public Il2CppGenericContainer[] GenericContainers => Metadata.GenericContainers; public Il2CppGenericParameter[] GenericParameters => Metadata.GenericParameters; + public int[] GenericConstraintIndices => Metadata.GenericConstraintIndices; public Il2CppCustomAttributeTypeRange[] AttributeTypeRanges => Metadata.AttributeTypeRanges; public int[] InterfaceUsageIndices => Metadata.InterfaceUsageIndices; public int[] NestedTypeIndices => Metadata.NestedTypeIndices; diff --git a/Il2CppInspector/Metadata.cs b/Il2CppInspector/Metadata.cs index f7f4b01..c364c86 100644 --- a/Il2CppInspector/Metadata.cs +++ b/Il2CppInspector/Metadata.cs @@ -35,6 +35,7 @@ namespace Il2CppInspector public int[] InterfaceUsageIndices { get; } public int[] NestedTypeIndices { get; } public int[] AttributeTypeIndices { get; } + public int[] GenericConstraintIndices { get; } public Dictionary Strings { get; } = new Dictionary(); @@ -107,6 +108,7 @@ namespace Il2CppInspector NestedTypeIndices = ReadArray(Header.nestedTypesOffset, Header.nestedTypesCount / sizeof(int)); GenericContainers = ReadArray(Header.genericContainersOffset, Header.genericContainersCount / Sizeof(typeof(Il2CppGenericContainer))); GenericParameters = ReadArray(Header.genericParametersOffset, Header.genericParametersCount / Sizeof(typeof(Il2CppGenericParameter))); + GenericConstraintIndices = ReadArray(Header.genericParameterConstraintsOffset, Header.genericParameterConstraintsCount / sizeof(int)); if (Version >= 16) { Assemblies = ReadArray(Header.assembliesOffset, Header.assembliesCount / Sizeof(typeof(Il2CppAssemblyDefinition))); @@ -116,7 +118,6 @@ namespace Il2CppInspector AttributeTypeIndices = ReadArray(Header.attributeTypesOffset, Header.attributeTypesCount / sizeof(int)); AttributeTypeRanges = ReadArray(Header.attributesInfoOffset, Header.attributesInfoCount / Sizeof(typeof(Il2CppCustomAttributeTypeRange))); } - // TODO: ParameterConstraints, MetadataUsage // Get all string literals Position = Header.stringOffset;