Browse Source

https://github.com/dotnet/DataGridExtensions/issues/52: Update DataGridExtensions to benefit from performance improvements.

pull/2333/head
Siegfried Pammer 4 years ago
parent
commit
30709c534d
  1. 2
      ILSpy/ILSpy.csproj
  2. 51
      ILSpy/Metadata/DebugTables/CustomDebugInformationTableTreeNode.cs

2
ILSpy/ILSpy.csproj

@ -59,7 +59,7 @@
<PackageReference Include="System.Composition" Version="$(SystemCompositionVersion)" /> <PackageReference Include="System.Composition" Version="$(SystemCompositionVersion)" />
<PackageReference Include="Mono.Cecil" Version="$(MonoCecilVersion)" /> <PackageReference Include="Mono.Cecil" Version="$(MonoCecilVersion)" />
<PackageReference Include="OSVersionHelper" Version="1.1.24" /> <PackageReference Include="OSVersionHelper" Version="1.1.24" />
<PackageReference Include="DataGridExtensions" Version="2.5.0" /> <PackageReference Include="DataGridExtensions" Version="2.5.1" />
<PackageReference Include="Microsoft.Xaml.Behaviors.Wpf" Version="1.1.31" /> <PackageReference Include="Microsoft.Xaml.Behaviors.Wpf" Version="1.1.31" />
</ItemGroup> </ItemGroup>

51
ILSpy/Metadata/DebugTables/CustomDebugInformationTableTreeNode.cs

@ -76,7 +76,7 @@ namespace ICSharpCode.ILSpy.Metadata
tabPage.Content = view; tabPage.Content = view;
if (scrollTargetEntry.RID > 1) if (scrollTargetEntry?.RID > 1)
{ {
ScrollItemIntoView(view, scrollTargetEntry); ScrollItemIntoView(view, scrollTargetEntry);
} }
@ -102,7 +102,7 @@ namespace ICSharpCode.ILSpy.Metadata
} }
} }
struct CustomDebugInformationEntry class CustomDebugInformationEntry
{ {
readonly int? offset; readonly int? offset;
readonly PEFile module; readonly PEFile module;
@ -197,8 +197,13 @@ namespace ICSharpCode.ILSpy.Metadata
} }
} }
string kindString;
public string Kind { public string Kind {
get { get {
if (kindString != null)
return kindString;
Guid guid; Guid guid;
if (kind != CustomDebugInformationKind.None) if (kind != CustomDebugInformationKind.None)
{ {
@ -211,32 +216,47 @@ namespace ICSharpCode.ILSpy.Metadata
switch (kind) switch (kind)
{ {
case CustomDebugInformationKind.None: case CustomDebugInformationKind.None:
return null; kindString = "";
break;
case CustomDebugInformationKind.StateMachineHoistedLocalScopes: case CustomDebugInformationKind.StateMachineHoistedLocalScopes:
return $"{MetadataTokens.GetHeapOffset(debugInfo.Kind):X8} - State Machine Hoisted Local Scopes (C# / VB) [{guid}]"; kindString = $"{MetadataTokens.GetHeapOffset(debugInfo.Kind):X8} - State Machine Hoisted Local Scopes (C# / VB) [{guid}]";
break;
case CustomDebugInformationKind.DynamicLocalVariables: case CustomDebugInformationKind.DynamicLocalVariables:
return $"{MetadataTokens.GetHeapOffset(debugInfo.Kind):X8} - Dynamic Local Variables (C#) [{guid}]"; kindString = $"{MetadataTokens.GetHeapOffset(debugInfo.Kind):X8} - Dynamic Local Variables (C#) [{guid}]";
break;
case CustomDebugInformationKind.DefaultNamespaces: case CustomDebugInformationKind.DefaultNamespaces:
return $"{MetadataTokens.GetHeapOffset(debugInfo.Kind):X8} - Default Namespaces (VB) [{guid}]"; kindString = $"{MetadataTokens.GetHeapOffset(debugInfo.Kind):X8} - Default Namespaces (VB) [{guid}]";
break;
case CustomDebugInformationKind.EditAndContinueLocalSlotMap: case CustomDebugInformationKind.EditAndContinueLocalSlotMap:
return $"{MetadataTokens.GetHeapOffset(debugInfo.Kind):X8} - Edit And Continue Local Slot Map (C# / VB) [{guid}]"; kindString = $"{MetadataTokens.GetHeapOffset(debugInfo.Kind):X8} - Edit And Continue Local Slot Map (C# / VB) [{guid}]";
break;
case CustomDebugInformationKind.EditAndContinueLambdaAndClosureMap: case CustomDebugInformationKind.EditAndContinueLambdaAndClosureMap:
return $"{MetadataTokens.GetHeapOffset(debugInfo.Kind):X8} - Edit And Continue Lambda And Closure Map (C# / VB) [{guid}]"; kindString = $"{MetadataTokens.GetHeapOffset(debugInfo.Kind):X8} - Edit And Continue Lambda And Closure Map (C# / VB) [{guid}]";
break;
case CustomDebugInformationKind.EmbeddedSource: case CustomDebugInformationKind.EmbeddedSource:
return $"{MetadataTokens.GetHeapOffset(debugInfo.Kind):X8} - Embedded Source (C# / VB) [{guid}]"; kindString = $"{MetadataTokens.GetHeapOffset(debugInfo.Kind):X8} - Embedded Source (C# / VB) [{guid}]";
break;
case CustomDebugInformationKind.SourceLink: case CustomDebugInformationKind.SourceLink:
return $"{MetadataTokens.GetHeapOffset(debugInfo.Kind):X8} - Source Link (C# / VB) [{guid}]"; kindString = $"{MetadataTokens.GetHeapOffset(debugInfo.Kind):X8} - Source Link (C# / VB) [{guid}]";
break;
case CustomDebugInformationKind.MethodSteppingInformation: case CustomDebugInformationKind.MethodSteppingInformation:
return $"{MetadataTokens.GetHeapOffset(debugInfo.Kind):X8} - Method Stepping Information (C# / VB) [{guid}]"; kindString = $"{MetadataTokens.GetHeapOffset(debugInfo.Kind):X8} - Method Stepping Information (C# / VB) [{guid}]";
break;
case CustomDebugInformationKind.CompilationOptions: case CustomDebugInformationKind.CompilationOptions:
return $"{MetadataTokens.GetHeapOffset(debugInfo.Kind):X8} - Compilation Options (C# / VB) [{ guid}]"; kindString = $"{MetadataTokens.GetHeapOffset(debugInfo.Kind):X8} - Compilation Options (C# / VB) [{ guid}]";
break;
case CustomDebugInformationKind.CompilationMetadataReferences: case CustomDebugInformationKind.CompilationMetadataReferences:
return $"{MetadataTokens.GetHeapOffset(debugInfo.Kind):X8} - Compilation Metadata References (C# / VB) [{ guid}]"; kindString = $"{MetadataTokens.GetHeapOffset(debugInfo.Kind):X8} - Compilation Metadata References (C# / VB) [{ guid}]";
break;
case CustomDebugInformationKind.TupleElementNames: case CustomDebugInformationKind.TupleElementNames:
return $"{MetadataTokens.GetHeapOffset(debugInfo.Kind):X8} - Tuple Element Names (C#) [{ guid}]"; kindString = $"{MetadataTokens.GetHeapOffset(debugInfo.Kind):X8} - Tuple Element Names (C#) [{ guid}]";
break;
default: default:
return $"{MetadataTokens.GetHeapOffset(debugInfo.Kind):X8} - Unknown [{guid}]"; kindString = $"{MetadataTokens.GetHeapOffset(debugInfo.Kind):X8} - Unknown [{guid}]";
break;
} }
return kindString;
} }
} }
@ -328,7 +348,6 @@ namespace ICSharpCode.ILSpy.Metadata
this.metadata = metadata; this.metadata = metadata;
this.handle = handle; this.handle = handle;
this.debugInfo = metadata.GetCustomDebugInformation(handle); this.debugInfo = metadata.GetCustomDebugInformation(handle);
this.rowDetails = null;
this.kind = GetKind(metadata, debugInfo.Kind); this.kind = GetKind(metadata, debugInfo.Kind);
} }
} }

Loading…
Cancel
Save