From d6ceea638c47e13ab662ad8284cb2698d80c4535 Mon Sep 17 00:00:00 2001 From: Jb Evain Date: Thu, 20 Jan 2011 16:22:53 +0100 Subject: [PATCH] [linker] fix reading of symbols for assemblies loaded with -a --- .../Mono.Linker.Steps/ResolveFromAssemblyStep.cs | 16 ++++++++++++++-- mcs/tools/linker/Mono.Linker/LinkContext.cs | 2 +- 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/mcs/tools/linker/Mono.Linker.Steps/ResolveFromAssemblyStep.cs b/mcs/tools/linker/Mono.Linker.Steps/ResolveFromAssemblyStep.cs index 9872cbeb131..e3ad96b410b 100644 --- a/mcs/tools/linker/Mono.Linker.Steps/ResolveFromAssemblyStep.cs +++ b/mcs/tools/linker/Mono.Linker.Steps/ResolveFromAssemblyStep.cs @@ -63,9 +63,21 @@ namespace Mono.Linker.Steps { } } + static void SetAction (LinkContext context, AssemblyDefinition assembly, AssemblyAction action) + { + TryReadSymbols (context, assembly); + + context.Annotations.SetAction (assembly, action); + } + + static void TryReadSymbols (LinkContext context, AssemblyDefinition assembly) + { + context.SafeReadSymbols (assembly); + } + public static void ProcessLibrary (LinkContext context, AssemblyDefinition assembly) { - context.Annotations.SetAction (assembly, AssemblyAction.Copy); + SetAction (context, assembly, AssemblyAction.Copy); foreach (TypeDefinition type in assembly.MainModule.Types) MarkType (context, type); @@ -86,7 +98,7 @@ namespace Mono.Linker.Steps { void ProcessExecutable (AssemblyDefinition assembly) { - Annotations.SetAction (assembly, AssemblyAction.Link); + SetAction (Context, assembly, AssemblyAction.Link); Annotations.Mark (assembly.EntryPoint.DeclaringType); MarkMethod (Context, assembly.EntryPoint, MethodAction.Parse); diff --git a/mcs/tools/linker/Mono.Linker/LinkContext.cs b/mcs/tools/linker/Mono.Linker/LinkContext.cs index d5d41f044a7..a9ce05fb3ce 100644 --- a/mcs/tools/linker/Mono.Linker/LinkContext.cs +++ b/mcs/tools/linker/Mono.Linker/LinkContext.cs @@ -146,7 +146,7 @@ namespace Mono.Linker { return !_annotations.HasAction (assembly); } - void SafeReadSymbols (AssemblyDefinition assembly) + public void SafeReadSymbols (AssemblyDefinition assembly) { try { assembly.MainModule.ReadSymbols (); -- 2.25.1