fix accidentally broken parsing for Il2CppGenericContainer

This commit is contained in:
LukeFZ
2026-02-11 18:13:15 +01:00
parent 02a41eccf0
commit 83a0e1b2dd
2 changed files with 15 additions and 7 deletions

View File

@@ -414,17 +414,25 @@ namespace Il2CppInspector
public ImmutableArray<T> ReadMetadataPrimitiveArray<T>(int oldOffset, int oldSize, Il2CppSectionMetadata newMetadata)
where T : unmanaged
{
return Version >= MetadataVersions.V380
? ReadPrimitiveArray<T>(newMetadata.Offset, newMetadata.Count)
: ReadPrimitiveArray<T>(oldOffset, oldSize / Unsafe.SizeOf<T>());
if (Version >= MetadataVersions.V380)
{
Debug.Assert(newMetadata.Count * Unsafe.SizeOf<T>() == newMetadata.SectionSize);
return ReadPrimitiveArray<T>(newMetadata.Offset, newMetadata.Count);
}
return ReadPrimitiveArray<T>(oldOffset, oldSize / Unsafe.SizeOf<T>());
}
public ImmutableArray<T> ReadMetadataArray<T>(int oldOffset, int oldSize, Il2CppSectionMetadata newMetadata)
where T : IReadable, new()
{
return Version >= MetadataVersions.V380
? ReadVersionedObjectArray<T>(newMetadata.Offset, newMetadata.Count)
: ReadVersionedObjectArray<T>(oldOffset, oldSize / Sizeof<T>());
if (Version >= MetadataVersions.V380)
{
Debug.Assert(newMetadata.Count * Sizeof<T>() == newMetadata.SectionSize);
return ReadVersionedObjectArray<T>(newMetadata.Offset, newMetadata.Count);
}
return ReadVersionedObjectArray<T>(oldOffset, oldSize / Sizeof<T>());
}
// Save metadata to file, overwriting if necessary

View File

@@ -26,7 +26,7 @@ public partial record struct Il2CppGenericContainer
[field: FieldOffset(4)]
private ushort _newTypeArgc;
[VersionCondition(LessThan = "106.0")]
[VersionCondition(GreaterThan = "106.0")]
[field: FieldOffset(8)]
public byte _newIsMethod;
}