Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/monodevelop.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Krüger <mkrueger@xamarin.com>2015-08-13 08:43:11 +0300
committerMike Krüger <mkrueger@xamarin.com>2015-08-13 08:43:33 +0300
commit370eebb40013533b6db62775f6ce6c1039d36a04 (patch)
treea08b312f2a038bb2cac5429d6674bef43b6fdf89 /main/src/addins/MonoDevelop.AssemblyBrowser
parentf7de89807c9fd74124dcc26d5c37051e4b5e5ad4 (diff)
Fixed 'Bug 33041 - Go-to-definition against a type inside
Microsoft.mshtml.dll freezes all of XS'.
Diffstat (limited to 'main/src/addins/MonoDevelop.AssemblyBrowser')
-rw-r--r--main/src/addins/MonoDevelop.AssemblyBrowser/MonoDevelop.AssemblyBrowser/AssemblyBrowserWidget.cs33
1 files changed, 33 insertions, 0 deletions
diff --git a/main/src/addins/MonoDevelop.AssemblyBrowser/MonoDevelop.AssemblyBrowser/AssemblyBrowserWidget.cs b/main/src/addins/MonoDevelop.AssemblyBrowser/MonoDevelop.AssemblyBrowser/AssemblyBrowserWidget.cs
index 5a1b069cc6..54ad286a35 100644
--- a/main/src/addins/MonoDevelop.AssemblyBrowser/MonoDevelop.AssemblyBrowser/AssemblyBrowserWidget.cs
+++ b/main/src/addins/MonoDevelop.AssemblyBrowser/MonoDevelop.AssemblyBrowser/AssemblyBrowserWidget.cs
@@ -129,6 +129,38 @@ namespace MonoDevelop.AssemblyBrowser
return referencedSegment.Reference.ToString ();
}
+ class FastNonInterningProvider : InterningProvider
+ {
+ Dictionary<string, string> stringDict = new Dictionary<string, string>();
+
+ public override string Intern (string text)
+ {
+ if (text == null)
+ return null;
+
+ string output;
+ if (stringDict.TryGetValue(text, out output))
+ return output;
+ stringDict [text] = text;
+ return text;
+ }
+
+ public override ISupportsInterning Intern (ISupportsInterning obj)
+ {
+ return obj;
+ }
+
+ public override IList<T> InternList<T>(IList<T> list)
+ {
+ return list;
+ }
+
+ public override object InternValue (object obj)
+ {
+ return obj;
+ }
+ }
+
public AssemblyBrowserWidget ()
{
this.Build ();
@@ -183,6 +215,7 @@ namespace MonoDevelop.AssemblyBrowser
languageCombobox.Changed += LanguageComboboxhandleChanged;
loader = new CecilLoader (true);
+ loader.InterningProvider = new FastNonInterningProvider ();
loader.IncludeInternalMembers = true;
TreeView = new AssemblyBrowserTreeView (new NodeBuilder[] {
new ErrorNodeBuilder (),