Browse Source

Fix #3263: Properly handle assemblies that do not provide a type system in DerivedTypesTreeNode.

pull/3265/head
Siegfried Pammer 9 months ago
parent
commit
d0d60f9a6d
  1. 13
      ILSpy/TreeNodes/DerivedTypesTreeNode.cs

13
ILSpy/TreeNodes/DerivedTypesTreeNode.cs

@ -17,7 +17,6 @@ @@ -17,7 +17,6 @@
// DEALINGS IN THE SOFTWARE.
using System.Collections.Generic;
using System.Linq;
using System.Threading;
using ICSharpCode.Decompiler;
@ -66,12 +65,16 @@ namespace ICSharpCode.ILSpy.TreeNodes @@ -66,12 +65,16 @@ namespace ICSharpCode.ILSpy.TreeNodes
{
var definitionMetadata = type.ParentModule.MetadataFile.Metadata;
var metadataToken = (SRM.TypeDefinitionHandle)type.MetadataToken;
var assemblies = list.GetAllAssemblies().GetAwaiter().GetResult()
.Select(node => node.GetMetadataFileOrNull()).Where(asm => asm != null).ToArray();
foreach (var module in assemblies)
var assemblies = list.GetAllAssemblies().GetAwaiter().GetResult();
foreach (var loadedAssembly in assemblies)
{
var module = loadedAssembly.GetMetadataFileOrNull();
if (module == null)
continue;
var metadata = module.Metadata;
var assembly = (MetadataModule)module.GetTypeSystemOrNull().MainModule;
var assembly = module.GetTypeSystemOrNull()?.MainModule as MetadataModule;
if (assembly != null)
continue;
foreach (var h in metadata.TypeDefinitions)
{
cancellationToken.ThrowIfCancellationRequested();

Loading…
Cancel
Save