From 882047eb6c1fe5c5e09b55b2cb91932fae396d65 Mon Sep 17 00:00:00 2001 From: walon Date: Sun, 25 May 2025 08:16:19 +0800 Subject: [PATCH] =?UTF-8?q?MetaUtil::RetargetTypeRefInTypeSig=20=E7=89=B9?= =?UTF-8?q?=E6=AE=8A=E5=A4=84=E7=90=86=E6=9D=A5=E8=87=AAmscorlib=E7=9A=84?= =?UTF-8?q?=E7=B1=BB=E5=9E=8B=EF=BC=8C=E4=B8=8D=E5=86=8D=E5=88=9B=E5=BB=BA?= =?UTF-8?q?=E6=96=B0=E7=9A=84Class=E6=88=96ValueSig?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- com.code-philosophy.obfuz/Editor/Utils/MetaUtil.cs | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/com.code-philosophy.obfuz/Editor/Utils/MetaUtil.cs b/com.code-philosophy.obfuz/Editor/Utils/MetaUtil.cs index cd0697a..fb06398 100644 --- a/com.code-philosophy.obfuz/Editor/Utils/MetaUtil.cs +++ b/com.code-philosophy.obfuz/Editor/Utils/MetaUtil.cs @@ -266,11 +266,16 @@ namespace Obfuz.Utils case ElementType.Class: { var vts = type as ClassOrValueTypeSig; - TypeDef typeDef = vts.TypeDefOrRef.ResolveTypeDefThrow(); - if (typeDef == vts.TypeDefOrRef) + if (vts.TypeDefOrRef is TypeDef typeDef) { return type; } + TypeRef typeRef = (TypeRef)vts.TypeDefOrRef; + if (typeRef.DefinitionAssembly.IsCorLib()) + { + return type; + } + typeDef = typeRef.ResolveTypeDefThrow(); return type.IsClassSig ? (TypeSig)new ClassSig(typeDef) : new ValueTypeSig(typeDef); } case ElementType.Array: @@ -299,7 +304,7 @@ namespace Obfuz.Utils foreach (var arg in gis.GenericArguments) { TypeSig newArg = RetargetTypeRefInTypeSig(arg); - anyChange |= newArg != genericType; + anyChange |= newArg != arg; genericArgs.Add(newArg); } if (!anyChange)