From 425db24ee27b1efa932a1f622addb8fca57ffc4b Mon Sep 17 00:00:00 2001 From: walon Date: Wed, 21 May 2025 18:31:10 +0800 Subject: [PATCH] fix: fix bug that MetaUtil.GetTypeDefOrGenericTypeBaseOrNull and GetMemberRefTypeDefParentOrNull raise NullException when type is TypeSpec but isn't GenericType --- com.code-philosophy.obfuz/Editor/Utils/MetaUtil.cs | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/com.code-philosophy.obfuz/Editor/Utils/MetaUtil.cs b/com.code-philosophy.obfuz/Editor/Utils/MetaUtil.cs index 567b4d0..e18cade 100644 --- a/com.code-philosophy.obfuz/Editor/Utils/MetaUtil.cs +++ b/com.code-philosophy.obfuz/Editor/Utils/MetaUtil.cs @@ -85,6 +85,10 @@ namespace Obfuz.Utils if (type.IsTypeSpec) { GenericInstSig gis = type.TryGetGenericInstSig(); + if (gis == null) + { + return null; + } return gis.GenericType.ToTypeDefOrRef().ResolveTypeDefThrow(); } return null; @@ -102,8 +106,12 @@ namespace Obfuz.Utils } if (parent is TypeSpec typeSpec) { - GenericInstSig genericIns = typeSpec.TypeSig.ToGenericInstSig(); - return genericIns.GenericType.TypeDefOrRef.ResolveTypeDefThrow(); + GenericInstSig gis = typeSpec.TryGetGenericInstSig(); + if (gis == null) + { + return null; + } + return gis.GenericType.TypeDefOrRef.ResolveTypeDefThrow(); } return null; }