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

github.com/mono/mono-addins.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarius Ungureanu <marius.ungureanu@xamarin.com>2017-05-15 15:44:15 +0300
committerMarius Ungureanu <marius.ungureanu@xamarin.com>2017-05-15 15:44:15 +0300
commit32d7c2ae3ae6edd2e2d6fe3987941626dff63008 (patch)
treec64e2437ff18336fc4c2018a61a627c296fca173 /Mono.Addins.CecilReflector
parent627625e8e842d521b8bf570c757214e3fc85f60b (diff)
[Reflector] Fix InvalidCastException in reflector.
Also moved to a dictionary for type safety.
Diffstat (limited to 'Mono.Addins.CecilReflector')
-rw-r--r--Mono.Addins.CecilReflector/Mono.Addins.CecilReflector/Reflector.cs11
1 files changed, 6 insertions, 5 deletions
diff --git a/Mono.Addins.CecilReflector/Mono.Addins.CecilReflector/Reflector.cs b/Mono.Addins.CecilReflector/Mono.Addins.CecilReflector/Reflector.cs
index 2734da9..588bb11 100644
--- a/Mono.Addins.CecilReflector/Mono.Addins.CecilReflector/Reflector.cs
+++ b/Mono.Addins.CecilReflector/Mono.Addins.CecilReflector/Reflector.cs
@@ -27,6 +27,7 @@
using System;
using System.Collections;
+using System.Collections.Generic;
using System.Reflection;
using Mono.Addins;
using Mono.Addins.Database;
@@ -40,9 +41,9 @@ namespace Mono.Addins.CecilReflector
public class Reflector: IAssemblyReflector, IDisposable
{
IAssemblyLocator locator;
- Hashtable cachedAssemblies = new Hashtable ();
+ Dictionary<string, AssemblyDefinition> cachedAssemblies = new Dictionary<string, AssemblyDefinition> ();
DefaultAssemblyResolver defaultAssemblyResolver;
-
+
public void Initialize (IAssemblyLocator locator)
{
this.locator = locator;
@@ -299,8 +300,8 @@ namespace Mono.Addins.CecilReflector
public AssemblyDefinition LoadAssembly (string file, bool cache)
{
- AssemblyDefinition adef = (AssemblyDefinition) cachedAssemblies [file];
- if (adef != null)
+ AssemblyDefinition adef;
+ if (cachedAssemblies.TryGetValue (file, out adef))
return adef;
var rp = new ReaderParameters (ReadingMode.Deferred);
rp.AssemblyResolver = defaultAssemblyResolver;
@@ -500,7 +501,7 @@ namespace Mono.Addins.CecilReflector
public void Dispose ()
{
- foreach (AssemblyDefinition asm in cachedAssemblies) {
+ foreach (AssemblyDefinition asm in cachedAssemblies.Values) {
asm.Dispose ();
}
}