[Linker] refactorize how symbols are loaded
authorJb Evain <jbevain@gmail.com>
Wed, 24 Nov 2010 14:28:44 +0000 (15:28 +0100)
committerJb Evain <jbevain@gmail.com>
Wed, 24 Nov 2010 14:28:44 +0000 (15:28 +0100)
mcs/tools/linker/Mono.Linker.Steps/ResolveFromAssemblyStep.cs
mcs/tools/linker/Mono.Linker/LinkContext.cs

index bd615f171862229ea623819e6c60324a211efcf4..9872cbeb1312568ee825c3814bd3c59654e6c016 100644 (file)
@@ -48,10 +48,8 @@ namespace Mono.Linker.Steps {
 
                protected override void Process ()
                {
-                       if (_assembly != null) {
-                               Context.SafeLoadSymbols (_assembly);
+                       if (_assembly != null)
                                Context.Resolver.CacheAssembly (_assembly);
-                       }
 
                        AssemblyDefinition assembly = _assembly ?? Context.Resolve (_file);
 
index e1edf53953658a0540e9109de86d70a70eed970b..0b07c9585e7342cb5adc0d94295ce243a964b264 100644 (file)
@@ -44,6 +44,8 @@ namespace Mono.Linker {
 
                AssemblyResolver _resolver;
 
+               ReaderParameters _readerParameters;
+
                AnnotationStore _annotations;
 
                public Pipeline Pipeline {
@@ -89,6 +91,10 @@ namespace Mono.Linker {
                        _actions = new Hashtable ();
                        _parameters = new Hashtable ();
                        _annotations = new AnnotationStore ();
+                       _readerParameters = new ReaderParameters {
+                               AssemblyResolver = _resolver,
+                               ReadSymbols = _linkSymbols,
+                       };
                }
 
                public TypeDefinition GetType (string fullName)
@@ -114,9 +120,8 @@ namespace Mono.Linker {
                public AssemblyDefinition Resolve (string name)
                {
                        if (File.Exists (name)) {
-                               AssemblyDefinition assembly = AssemblyDefinition.ReadAssembly (name);
+                               AssemblyDefinition assembly = AssemblyDefinition.ReadAssembly (name, _readerParameters);
                                _resolver.CacheAssembly (assembly);
-                               SafeLoadSymbols (assembly);
                                return assembly;
                        }
 
@@ -127,29 +132,14 @@ namespace Mono.Linker {
                {
                        AssemblyNameReference reference = GetReference (scope);
 
-                       AssemblyDefinition assembly = _resolver.Resolve (reference);
+                       AssemblyDefinition assembly = _resolver.Resolve (reference, _readerParameters);
 
-                       if (SeenFirstTime (assembly)) {
+                       if (SeenFirstTime (assembly))
                                SetAction (assembly);
-                               SafeLoadSymbols (assembly);
-                       }
 
                        return assembly;
                }
 
-               public void SafeLoadSymbols (AssemblyDefinition assembly)
-               {
-                       if (!_linkSymbols)
-                               return;
-
-                       try {
-                               // throw new NotImplementedException ();
-                               // assembly.MainModule.LoadSymbols ();
-                       } catch {
-                               return; // resharper loves this
-                       }
-               }
-
                bool SeenFirstTime (AssemblyDefinition assembly)
                {
                        return !_annotations.HasAction (assembly);