fix: Call Obfuscation doesn't share return type because some type(eg. SZArray) will lead to il2cpp raise exception in generation process.

fix: Call Obfuscation doesn't share parameter which type is SZArray or Array type because this will lead the cpp code generated by il2cpp compile error!
before-split
walon 2025-05-19 17:11:32 +08:00
parent 5f63818841
commit 3dda64ced2
1 changed files with 3 additions and 3 deletions

View File

@ -582,7 +582,7 @@ namespace Obfuz.Utils
public static MethodSig ToSharedMethodSig(ICorLibTypes corTypes, MethodSig methodSig)
{
var newReturnType = ToShareTypeSig(corTypes, methodSig.RetType);
var newReturnType = methodSig.RetType;
var newParams = new List<TypeSig>();
foreach (var param in methodSig.Params)
{
@ -625,8 +625,8 @@ namespace Obfuz.Utils
case ElementType.Sentinel: return typeSig;
case ElementType.Ptr: return corTypes.UIntPtr;
case ElementType.ByRef: return corTypes.UIntPtr;
case ElementType.SZArray: return corTypes.Object;
case ElementType.Array: return corTypes.Object;
case ElementType.SZArray: return typeSig;
case ElementType.Array: return typeSig;
case ElementType.ValueType:
{
TypeDef typeDef = a.ToTypeDefOrRef().ResolveTypeDef();