Browse Source

Fix exceptions when selecting struct fields in tree view.

pull/1198/head
Siegfried Pammer 8 years ago
parent
commit
3e1eda980e
  1. 6
      ICSharpCode.Decompiler/CSharp/CSharpDecompiler.cs
  2. 4
      ILSpy/Languages/CSharpLanguage.cs

6
ICSharpCode.Decompiler/CSharp/CSharpDecompiler.cs

@ -535,11 +535,13 @@ namespace ICSharpCode.Decompiler.CSharp @@ -535,11 +535,13 @@ namespace ICSharpCode.Decompiler.CSharp
ITypeDefinition parentTypeDef = null;
syntaxTree = new SyntaxTree();
var decompileRun = new DecompileRun(settings) { CancellationToken = CancellationToken };
foreach (var entity in definitions)
RequiredNamespaceCollector.CollectNamespaces(entity, typeSystem, decompileRun.Namespaces);
foreach (var entity in definitions) {
if (entity.IsNil)
throw new ArgumentException("definitions contains null element");
RequiredNamespaceCollector.CollectNamespaces(entity, typeSystem, decompileRun.Namespaces);
}
foreach (var entity in definitions) {
switch (entity.Kind) {
case HandleKind.TypeDefinition:
ITypeDefinition typeDef = typeSystem.ResolveAsType(entity).GetDefinition();

4
ILSpy/Languages/CSharpLanguage.cs

@ -228,11 +228,11 @@ namespace ICSharpCode.ILSpy @@ -228,11 +228,11 @@ namespace ICSharpCode.ILSpy
{
var members = new List<EntityHandle>();
foreach (var field in type.Fields) {
if (field.IsStatic == isStatic)
if (!field.MetadataToken.IsNil && field.IsStatic == isStatic)
members.Add(field.MetadataToken);
}
foreach (var ctor in type.Methods) {
if (ctor.IsConstructor && ctor.IsStatic == isStatic)
if (!ctor.MetadataToken.IsNil && ctor.IsConstructor && ctor.IsStatic == isStatic)
members.Add(ctor.MetadataToken);
}

Loading…
Cancel
Save