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-12-10 10:26:52 +0300
committerMike Krüger <mkrueger@xamarin.com>2015-12-10 10:26:52 +0300
commit3cb6bf1b83f1a7440589573573c6e6aa4b1dee61 (patch)
tree6285a0a6b4d3f2910f1a4fc0aff5d49690ba0c5c /main/src/addins/MonoDevelop.AssemblyBrowser
parentcde2746ac6ce6506dcfbc59654ec90eaf8d8ab27 (diff)
Fixed 'Bug 36796 - NRE in assembly browser'.
Diffstat (limited to 'main/src/addins/MonoDevelop.AssemblyBrowser')
-rw-r--r--main/src/addins/MonoDevelop.AssemblyBrowser/MonoDevelop.AssemblyBrowser/AssemblyLoader.cs26
-rw-r--r--main/src/addins/MonoDevelop.AssemblyBrowser/MonoDevelop.AssemblyBrowser/TreeNodes/AssemblyNodeBuilder.cs16
2 files changed, 19 insertions, 23 deletions
diff --git a/main/src/addins/MonoDevelop.AssemblyBrowser/MonoDevelop.AssemblyBrowser/AssemblyLoader.cs b/main/src/addins/MonoDevelop.AssemblyBrowser/MonoDevelop.AssemblyBrowser/AssemblyLoader.cs
index 0942715e79..e510cd1e26 100644
--- a/main/src/addins/MonoDevelop.AssemblyBrowser/MonoDevelop.AssemblyBrowser/AssemblyLoader.cs
+++ b/main/src/addins/MonoDevelop.AssemblyBrowser/MonoDevelop.AssemblyBrowser/AssemblyLoader.cs
@@ -43,9 +43,9 @@ namespace MonoDevelop.AssemblyBrowser
private set;
}
- Task<AssemblyDefinition> assemblyLoaderTask;
+ Task<Tuple<AssemblyDefinition, IUnresolvedAssembly>> assemblyLoaderTask;
- public Task<AssemblyDefinition> LoadingTask {
+ public Task<Tuple<AssemblyDefinition, IUnresolvedAssembly>> LoadingTask {
get {
return assemblyLoaderTask;
}
@@ -56,34 +56,32 @@ namespace MonoDevelop.AssemblyBrowser
public AssemblyDefinition Assembly {
get {
- return assemblyLoaderTask.Result;
+ return assemblyLoaderTask.Result.Item1;
}
}
-
- IUnresolvedAssembly unresolvedAssembly;
+
public IUnresolvedAssembly UnresolvedAssembly {
get {
- return unresolvedAssembly;
+ return assemblyLoaderTask.Result.Item2;
}
}
public AssemblyLoader (AssemblyBrowserWidget widget, string fileName)
{
if (widget == null)
- throw new ArgumentNullException ("widget");
+ throw new ArgumentNullException (nameof (widget));
if (fileName == null)
- throw new ArgumentNullException ("fileName");
+ throw new ArgumentNullException (nameof (fileName));
this.widget = widget;
- this.FileName = fileName;
+ FileName = fileName;
if (!File.Exists (fileName))
- throw new ArgumentException ("File doesn't exist.", "fileName");
- this.assemblyLoaderTask = Task.Run (() => {
+ throw new ArgumentException ("File doesn't exist.", nameof (fileName));
+ assemblyLoaderTask = Task.Run (() => {
try {
var asm = AssemblyDefinition.ReadAssembly (FileName, new ReaderParameters {
AssemblyResolver = this
});
- unresolvedAssembly = widget.CecilLoader.LoadAssembly (asm);
- return asm;
+ return Tuple.Create (asm, widget.CecilLoader.LoadAssembly (asm));
} catch (Exception e) {
LoggingService.LogError ("Error while reading assembly " + FileName, e);
return null;
@@ -120,7 +118,7 @@ namespace MonoDevelop.AssemblyBrowser
public string LookupAssembly (string fullAssemblyName)
{
var assemblyFile = Runtime.SystemAssemblyService.DefaultAssemblyContext.GetAssemblyLocation (fullAssemblyName, null);
- if (assemblyFile != null && System.IO.File.Exists (assemblyFile))
+ if (assemblyFile != null && File.Exists (assemblyFile))
return assemblyFile;
var name = AssemblyNameReference.Parse (fullAssemblyName);
diff --git a/main/src/addins/MonoDevelop.AssemblyBrowser/MonoDevelop.AssemblyBrowser/TreeNodes/AssemblyNodeBuilder.cs b/main/src/addins/MonoDevelop.AssemblyBrowser/MonoDevelop.AssemblyBrowser/TreeNodes/AssemblyNodeBuilder.cs
index 21fdf47598..627885294c 100644
--- a/main/src/addins/MonoDevelop.AssemblyBrowser/MonoDevelop.AssemblyBrowser/TreeNodes/AssemblyNodeBuilder.cs
+++ b/main/src/addins/MonoDevelop.AssemblyBrowser/MonoDevelop.AssemblyBrowser/TreeNodes/AssemblyNodeBuilder.cs
@@ -34,10 +34,8 @@ using Mono.Cecil;
using MonoDevelop.Core;
using MonoDevelop.Ide.Gui;
-using MonoDevelop.Ide.Gui.Pads;
using MonoDevelop.Ide.Gui.Components;
using System.Collections.Generic;
-using ICSharpCode.NRefactory.TypeSystem;
using System.IO;
using MonoDevelop.Ide.Editor;
@@ -67,17 +65,17 @@ namespace MonoDevelop.AssemblyBrowser
nodeInfo.Icon = Context.GetIcon (Stock.Reference);
}
- public override void BuildChildNodes (ITreeBuilder builder, object dataObject)
+ public override void BuildChildNodes (ITreeBuilder treeBuilder, object dataObject)
{
var compilationUnit = (AssemblyLoader)dataObject;
var references = new AssemblyReferenceFolder (compilationUnit.Assembly);
if (references.AssemblyReferences.Any () || references.ModuleReferences.Any ())
- builder.AddChild (references);
+ treeBuilder.AddChild (references);
var resources = new AssemblyResourceFolder (compilationUnit.Assembly);
if (resources.Resources.Any ())
- builder.AddChild (resources);
+ treeBuilder.AddChild (resources);
var namespaces = new Dictionary<string, Namespace> ();
bool publicOnly = Widget.PublicApiOnly;
@@ -94,14 +92,14 @@ namespace MonoDevelop.AssemblyBrowser
foreach (var ns in namespaces.Values) {
if (publicOnly && !ns.Types.Any (t => t.IsPublic))
continue;
- builder.AddChild (ns);
+ treeBuilder.AddChild (ns);
}
}
public override bool HasChildNodes (ITreeBuilder builder, object dataObject)
{
var compilationUnit = (AssemblyLoader)dataObject;
- return compilationUnit.Assembly.MainModule.HasTypes;
+ return compilationUnit?.Assembly?.MainModule.HasTypes == true;
}
public override int CompareObjects (ITreeNavigator thisNode, ITreeNavigator otherNode)
@@ -119,7 +117,7 @@ namespace MonoDevelop.AssemblyBrowser
if (e2 == null)
return -1;
- return e1.Assembly.Name.Name.CompareTo (e2.Assembly.Name.Name);
+ return string.Compare (e1.Assembly.Name.Name, e2.Assembly.Name.Name, StringComparison.Ordinal);
} catch (Exception e) {
LoggingService.LogError ("Exception in assembly browser sort function.", e);
return -1;
@@ -131,7 +129,7 @@ namespace MonoDevelop.AssemblyBrowser
{
result.Append ("<span style=\"comment\">");
result.Append ("// " +
- String.Format (GettextCatalog.GetString ("Assembly <b>{0}</b>, Version {1}"),
+ string.Format (GettextCatalog.GetString ("Assembly <b>{0}</b>, Version {1}"),
assemblyDefinition.Name.Name,
assemblyDefinition.Name.Version));
result.Append ("</span>");