From 440b0509c2f0591bf40cf1ddc90745127b3ea960 Mon Sep 17 00:00:00 2001 From: walon Date: Tue, 29 Apr 2025 10:05:35 +0800 Subject: [PATCH] =?UTF-8?q?MetaUtil.ToShareTypeSig=20=E5=AF=B9=E4=BA=8E?= =?UTF-8?q?=E6=B3=9B=E5=9E=8B=E7=B1=BB=E5=9E=8B=E4=B8=8D=E5=85=B1=E4=BA=AB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Editor/Utils/MetaUtil.cs | 31 ++++++++++++++++--------------- 1 file changed, 16 insertions(+), 15 deletions(-) diff --git a/Editor/Utils/MetaUtil.cs b/Editor/Utils/MetaUtil.cs index 3e2b81c..5d8e95e 100644 --- a/Editor/Utils/MetaUtil.cs +++ b/Editor/Utils/MetaUtil.cs @@ -650,22 +650,23 @@ namespace Obfuz.Utils case ElementType.Class: return corTypes.Object; case ElementType.GenericInst: { + // il2cpp will raise error when try to share generic value type return typeSig; - var gia = (GenericInstSig)a; - TypeDef typeDef = gia.GenericType.ToTypeDefOrRef().ResolveTypeDef(); - if (typeDef == null) - { - throw new Exception($"type:{a} definition could not be found"); - } - if (typeDef.IsEnum) - { - return ToShareTypeSig(corTypes, typeDef.GetEnumUnderlyingType()); - } - if (!typeDef.IsValueType) - { - return corTypes.Object; - } - return new GenericInstSig(gia.GenericType, gia.GenericArguments.Select(ga => ToShareTypeSig(corTypes, ga)).ToList()); + //var gia = (GenericInstSig)a; + //TypeDef typeDef = gia.GenericType.ToTypeDefOrRef().ResolveTypeDef(); + //if (typeDef == null) + //{ + // throw new Exception($"type:{a} definition could not be found"); + //} + //if (typeDef.IsEnum) + //{ + // return ToShareTypeSig(corTypes, typeDef.GetEnumUnderlyingType()); + //} + //if (!typeDef.IsValueType) + //{ + // return corTypes.Object; + //} + //return new GenericInstSig(gia.GenericType, gia.GenericArguments.Select(ga => ToShareTypeSig(corTypes, ga)).ToList()); } case ElementType.FnPtr: return corTypes.UIntPtr; case ElementType.ValueArray: return typeSig;