backport 29/31 version fixes from new versioning branch
This commit is contained in:
@@ -294,9 +294,9 @@ namespace Il2CppInspector
|
|||||||
CodeRegistration = Image.ReadMappedObject<Il2CppCodeRegistration>(codeRegistration);
|
CodeRegistration = Image.ReadMappedObject<Il2CppCodeRegistration>(codeRegistration);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (Image.Version == 29 && (long)CodeRegistration.genericMethodPointersCount - MetadataRegistration.genericMethodTableCount > 0x10000)
|
if (Image.Version is 29 or 31 && (long)CodeRegistration.genericMethodPointersCount - MetadataRegistration.genericMethodTableCount > 0x10000)
|
||||||
{
|
{
|
||||||
Image.Version = 29.1;
|
Image.Version += 0.1;
|
||||||
codeRegistration -= 2 * pointerSize;
|
codeRegistration -= 2 * pointerSize;
|
||||||
CodeRegistration = Image.ReadMappedObject<Il2CppCodeRegistration>(codeRegistration);
|
CodeRegistration = Image.ReadMappedObject<Il2CppCodeRegistration>(codeRegistration);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -191,6 +191,25 @@ namespace Il2CppInspector
|
|||||||
Header.attributeDataRangeSize / Sizeof(typeof(Il2CppCustomAttributeDataRange)));
|
Header.attributeDataRangeSize / Sizeof(typeof(Il2CppCustomAttributeDataRange)));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (Version is 29 or 31)
|
||||||
|
{
|
||||||
|
// 29.2/31.2 added a new isUnmanagedCallersOnly flag to Il2CppMethodDefinition.
|
||||||
|
// This offsets all subsequent entries by one - we can detect this by checking the
|
||||||
|
// top token byte (which should always be 0x06).
|
||||||
|
|
||||||
|
if (Methods.Length >= 2)
|
||||||
|
{
|
||||||
|
var secondToken = Methods[1].token;
|
||||||
|
if (secondToken >> 24 != 0x6)
|
||||||
|
{
|
||||||
|
Version += 0.2;
|
||||||
|
|
||||||
|
Methods = ReadArray<Il2CppMethodDefinition>(Header.methodsOffset,
|
||||||
|
Header.methodsCount / Sizeof(typeof(Il2CppMethodDefinition)));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Get all metadata strings
|
// Get all metadata strings
|
||||||
var pluginGetStringsResult = PluginHooks.GetStrings(this);
|
var pluginGetStringsResult = PluginHooks.GetStrings(this);
|
||||||
if (pluginGetStringsResult.IsDataModified && !pluginGetStringsResult.IsInvalid)
|
if (pluginGetStringsResult.IsDataModified && !pluginGetStringsResult.IsInvalid)
|
||||||
|
|||||||
@@ -343,7 +343,7 @@ namespace Il2CppInspector
|
|||||||
public ushort parameterCount;
|
public ushort parameterCount;
|
||||||
|
|
||||||
[Version(Min = 29.2, Max = 31)]
|
[Version(Min = 29.2, Max = 31)]
|
||||||
public bool isUnmanagedCallersOnly;
|
public byte isUnmanagedCallersOnly;
|
||||||
}
|
}
|
||||||
|
|
||||||
public class Il2CppParameterDefinition
|
public class Il2CppParameterDefinition
|
||||||
|
|||||||
Reference in New Issue
Block a user