Browse Source

fix NRE when trying to go to the definition of a ctor or cctor from the profiling results

pull/540/head
Siegfried Pammer 11 years ago
parent
commit
34f8b5e895
  1. 7
      src/AddIns/Analysis/Profiler/Frontend/AddIn/Src/Commands/DomMenuCommand.cs
  2. 2
      src/AddIns/Analysis/Profiler/Frontend/AddIn/Src/Commands/GoToDefinition.cs

7
src/AddIns/Analysis/Profiler/Frontend/AddIn/Src/Commands/DomMenuCommand.cs

@ -41,16 +41,13 @@ namespace ICSharpCode.Profiler.AddIn.Commands @@ -41,16 +41,13 @@ namespace ICSharpCode.Profiler.AddIn.Commands
if (name == null || c == null)
return null;
if (name == ".ctor" || name == ".cctor") // Constructor
name = name.Replace('.', '#');
if (name.StartsWith("get_") || name.StartsWith("set_")) {
if (name.StartsWith("get_", StringComparison.Ordinal) || name.StartsWith("set_", StringComparison.Ordinal)) {
// Property Getter or Setter
name = name.Substring(4);
IProperty prop = c.Properties.FirstOrDefault(p => p.Name == name);
if (prop != null)
return prop;
} else if (name.StartsWith("add_") || name.StartsWith("remove_")) {
} else if (name.StartsWith("add_", StringComparison.Ordinal) || name.StartsWith("remove_", StringComparison.Ordinal)) {
name = name.Substring(4);
IEvent ev = c.Events.FirstOrDefault(e => e.Name == name);
if (ev != null)

2
src/AddIns/Analysis/Profiler/Frontend/AddIn/Src/Commands/GoToDefinition.cs

@ -39,7 +39,7 @@ namespace ICSharpCode.Profiler.AddIn.Commands @@ -39,7 +39,7 @@ namespace ICSharpCode.Profiler.AddIn.Commands
ITypeDefinition c = GetClassFromName(selectedItem.FullyQualifiedClassName);
if (c != null) {
IMember member = GetMemberFromName(c, selectedItem.MethodName, selectedItem.Parameters);
if (!member.Region.IsEmpty && !string.IsNullOrEmpty(member.Region.FileName)) {
if (member != null && !member.Region.IsEmpty && !string.IsNullOrEmpty(member.Region.FileName)) {
FileName fn = new FileName(member.Region.FileName);
SD.FileService.JumpToFilePosition(fn, member.Region.BeginLine, member.Region.BeginColumn);
}

Loading…
Cancel
Save