fix: fix bug that MetaUtil.GetTypeDefOrGenericTypeBaseOrNull and GetMemberRefTypeDefParentOrNull raise NullException when type is TypeSpec but isn't GenericType

before-split
walon 2025-05-21 18:31:10 +08:00
parent 1f29de26cf
commit 425db24ee2
1 changed files with 10 additions and 2 deletions

View File

@ -85,6 +85,10 @@ namespace Obfuz.Utils
if (type.IsTypeSpec) if (type.IsTypeSpec)
{ {
GenericInstSig gis = type.TryGetGenericInstSig(); GenericInstSig gis = type.TryGetGenericInstSig();
if (gis == null)
{
return null;
}
return gis.GenericType.ToTypeDefOrRef().ResolveTypeDefThrow(); return gis.GenericType.ToTypeDefOrRef().ResolveTypeDefThrow();
} }
return null; return null;
@ -102,8 +106,12 @@ namespace Obfuz.Utils
} }
if (parent is TypeSpec typeSpec) if (parent is TypeSpec typeSpec)
{ {
GenericInstSig genericIns = typeSpec.TypeSig.ToGenericInstSig(); GenericInstSig gis = typeSpec.TryGetGenericInstSig();
return genericIns.GenericType.TypeDefOrRef.ResolveTypeDefThrow(); if (gis == null)
{
return null;
}
return gis.GenericType.TypeDefOrRef.ResolveTypeDefThrow();
} }
return null; return null;
} }