Browse Source

Fix MetadataTokenSearchStrategy.

pull/1347/head
Siegfried Pammer 7 years ago
parent
commit
1dfd2bb9ac
  1. 30
      ILSpy/Search/MetadataTokenSearchStrategy.cs

30
ILSpy/Search/MetadataTokenSearchStrategy.cs

@ -25,12 +25,40 @@ namespace ICSharpCode.ILSpy.Search
if (searchTermToken.IsNil) return; if (searchTermToken.IsNil) return;
var typeSystem = module.GetTypeSystemOrNull(); var typeSystem = module.GetTypeSystemOrNull();
if (typeSystem == null) return; if (typeSystem == null) return;
var metadataModule = (MetadataModule)typeSystem.MainModule;
int row = module.Metadata.GetRowNumber(searchTermToken);
switch (searchTermToken.Kind) { switch (searchTermToken.Kind) {
case HandleKind.TypeDefinition: case HandleKind.TypeDefinition:
var type = ((MetadataModule)typeSystem.MainModule).GetDefinition((TypeDefinitionHandle)searchTermToken); if (row < 1 || row > module.Metadata.TypeDefinitions.Count)
break;
var type = metadataModule.GetDefinition((TypeDefinitionHandle)searchTermToken);
addResult(ResultFromEntity(type)); addResult(ResultFromEntity(type));
break; break;
case HandleKind.MethodDefinition:
if (row < 1 || row > module.Metadata.MethodDefinitions.Count)
break;
var method = metadataModule.GetDefinition((MethodDefinitionHandle)searchTermToken);
addResult(ResultFromEntity(method));
break;
case HandleKind.FieldDefinition:
if (row < 1 || row > module.Metadata.FieldDefinitions.Count)
break;
var field = metadataModule.GetDefinition((FieldDefinitionHandle)searchTermToken);
addResult(ResultFromEntity(field));
break;
case HandleKind.PropertyDefinition:
if (row < 1 || row > module.Metadata.PropertyDefinitions.Count)
break;
var property = metadataModule.GetDefinition((PropertyDefinitionHandle)searchTermToken);
addResult(ResultFromEntity(property));
break;
case HandleKind.EventDefinition:
if (row < 1 || row > module.Metadata.EventDefinitions.Count)
break;
var @event = metadataModule.GetDefinition((EventDefinitionHandle)searchTermToken);
addResult(ResultFromEntity(@event));
break;
} }
} }
} }

Loading…
Cancel
Save