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
parent
5f63818841
commit
3dda64ced2
|
@ -582,7 +582,7 @@ namespace Obfuz.Utils
|
||||||
|
|
||||||
public static MethodSig ToSharedMethodSig(ICorLibTypes corTypes, MethodSig methodSig)
|
public static MethodSig ToSharedMethodSig(ICorLibTypes corTypes, MethodSig methodSig)
|
||||||
{
|
{
|
||||||
var newReturnType = ToShareTypeSig(corTypes, methodSig.RetType);
|
var newReturnType = methodSig.RetType;
|
||||||
var newParams = new List<TypeSig>();
|
var newParams = new List<TypeSig>();
|
||||||
foreach (var param in methodSig.Params)
|
foreach (var param in methodSig.Params)
|
||||||
{
|
{
|
||||||
|
@ -625,8 +625,8 @@ namespace Obfuz.Utils
|
||||||
case ElementType.Sentinel: return typeSig;
|
case ElementType.Sentinel: return typeSig;
|
||||||
case ElementType.Ptr: return corTypes.UIntPtr;
|
case ElementType.Ptr: return corTypes.UIntPtr;
|
||||||
case ElementType.ByRef: return corTypes.UIntPtr;
|
case ElementType.ByRef: return corTypes.UIntPtr;
|
||||||
case ElementType.SZArray: return corTypes.Object;
|
case ElementType.SZArray: return typeSig;
|
||||||
case ElementType.Array: return corTypes.Object;
|
case ElementType.Array: return typeSig;
|
||||||
case ElementType.ValueType:
|
case ElementType.ValueType:
|
||||||
{
|
{
|
||||||
TypeDef typeDef = a.ToTypeDefOrRef().ResolveTypeDef();
|
TypeDef typeDef = a.ToTypeDefOrRef().ResolveTypeDef();
|
||||||
|
|
Loading…
Reference in New Issue