Browse Source

Work around .NET bug that prevents profiler views from opening.

Fixed ParserService trying to load file content even for files without an available parser.

git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/trunk@5008 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61
shortcuts
Daniel Grunwald 16 years ago
parent
commit
ca9cd37a2d
  1. 2
      src/AddIns/Misc/Profiler/Frontend/AddIn/Src/Views/ProfilerView.xaml
  2. 12
      src/AddIns/Misc/Profiler/Frontend/AddIn/Src/Views/ProfilerView.xaml.cs
  3. 3
      src/Main/Base/Project/Src/Services/ParserService/ParserService.cs

2
src/AddIns/Misc/Profiler/Frontend/AddIn/Src/Views/ProfilerView.xaml

@ -3,7 +3,7 @@ @@ -3,7 +3,7 @@
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:sd="http://icsharpcode.net/sharpdevelop/core"
xmlns:y="clr-namespace:ICSharpCode.Profiler.Controls;assembly=ICSharpCode.Profiler.Controls"
xmlns:local="clr-namespace:ICSharpCode.Profiler.AddIn.Views">
xmlns:local="clr-namespace:ICSharpCode.Profiler.AddIn.Views;assembly=ICSharpCode.Profiler.AddIn">
<UserControl.Resources>
<Style x:Key="CloseButton" TargetType="{x:Type Button}">
<Setter Property="Template">

12
src/AddIns/Misc/Profiler/Frontend/AddIn/Src/Views/ProfilerView.xaml.cs

@ -24,7 +24,11 @@ namespace ICSharpCode.Profiler.AddIn.Views @@ -24,7 +24,11 @@ namespace ICSharpCode.Profiler.AddIn.Views
public ProfilerView(ProfilingDataProvider provider)
{
// workaround for bug in .NET 4.0 Beta 1
AppDomain.CurrentDomain.AssemblyResolve += AppDomain_CurrentDomain_AssemblyResolve;
InitializeComponent();
AppDomain.CurrentDomain.AssemblyResolve -= AppDomain_CurrentDomain_AssemblyResolve;
this.provider = provider;
this.timeLine.IsEnabled = true;
@ -57,6 +61,14 @@ namespace ICSharpCode.Profiler.AddIn.Views @@ -57,6 +61,14 @@ namespace ICSharpCode.Profiler.AddIn.Views
InitializeOldTabs();
}
System.Reflection.Assembly AppDomain_CurrentDomain_AssemblyResolve(object sender, ResolveEventArgs args)
{
if (args.Name == "ICSharpCode.Profiler.Controls, PublicKeyToken=null")
return typeof(QueryView).Assembly;
else
return null;
}
void TimeLineRangeChanged(object sender, RangeEventArgs e)
{
foreach (TabItem item in this.tabView.Items) {

3
src/Main/Base/Project/Src/Services/ParserService/ParserService.cs

@ -164,6 +164,9 @@ namespace ICSharpCode.SharpDevelop @@ -164,6 +164,9 @@ namespace ICSharpCode.SharpDevelop
string fileName = viewContent.PrimaryFileName;
if (fileName == null)
return;
if (GetParser(fileName) == null)
return;
ITextBuffer snapshot;
IEditable editable = viewContent as IEditable;
if (editable != null)

Loading…
Cancel
Save