From: Jb Evain Date: Wed, 24 Nov 2010 14:28:44 +0000 (+0100) Subject: [Linker] refactorize how symbols are loaded X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=commitdiff_plain;h=cb595ef82bf3372c96fb95a8db53cf201e2ee12a;p=mono.git [Linker] refactorize how symbols are loaded --- diff --git a/mcs/tools/linker/Mono.Linker.Steps/ResolveFromAssemblyStep.cs b/mcs/tools/linker/Mono.Linker.Steps/ResolveFromAssemblyStep.cs index bd615f17186..9872cbeb131 100644 --- a/mcs/tools/linker/Mono.Linker.Steps/ResolveFromAssemblyStep.cs +++ b/mcs/tools/linker/Mono.Linker.Steps/ResolveFromAssemblyStep.cs @@ -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); diff --git a/mcs/tools/linker/Mono.Linker/LinkContext.cs b/mcs/tools/linker/Mono.Linker/LinkContext.cs index e1edf539536..0b07c9585e7 100644 --- a/mcs/tools/linker/Mono.Linker/LinkContext.cs +++ b/mcs/tools/linker/Mono.Linker/LinkContext.cs @@ -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);