X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=mcs%2Filasm%2Fcodegen%2FExternTable.cs;h=037ecfada85d04521baabf5c74d462dce137c0a0;hb=9869ae24b88761ab261c4311e24f7383b4af3f02;hp=659f0b462a5f405ca708c92ebd8c56197b34dba6;hpb=948dbf8d4581ac17f5420cc4f7dc375e3c502576;p=mono.git diff --git a/mcs/ilasm/codegen/ExternTable.cs b/mcs/ilasm/codegen/ExternTable.cs index 659f0b462a5..037ecfada85 100644 --- a/mcs/ilasm/codegen/ExternTable.cs +++ b/mcs/ilasm/codegen/ExternTable.cs @@ -11,6 +11,7 @@ using System; using System.Collections; using System.Reflection; using System.Security; +using System.Globalization; namespace Mono.ILASM { @@ -144,10 +145,12 @@ namespace Mono.ILASM { private string locale; private byte [] hash; private DeclSecurity decl_sec; + private AssemblyName asmb_name; public ExternAssembly (string name, AssemblyName asmb_name) : base (name) { this.name = name; + this.asmb_name = asmb_name; major = minor = build = revision = -1; } @@ -159,6 +162,18 @@ namespace Mono.ILASM { } } + public AssemblyName AssemblyName { + get { return asmb_name; } + } + + public DeclSecurity DeclSecurity { + get { + if (decl_sec == null) + decl_sec = new DeclSecurity (); + return decl_sec; + } + } + public override void Resolve (CodeGen code_gen) { if (is_resolved) @@ -193,43 +208,32 @@ namespace Mono.ILASM { return AssemblyRef; } - public void AddPermissionSet (PEAPI.SecurityAction sec_action, PermissionSet ps) - { - if (decl_sec == null) - decl_sec = new DeclSecurity (); - - decl_sec.AddPermissionSet (sec_action, ps); - } - - public void AddPermission (PEAPI.SecurityAction sec_action, IPermission iper) - { - if (decl_sec == null) - decl_sec = new DeclSecurity (); - - decl_sec.AddPermission (sec_action, iper); - } - public void SetVersion (int major, int minor, int build, int revision) { this.major = major; this.minor = minor; this.build = build; this.revision = revision; + asmb_name.Version = new Version (major, minor, build, revision); } public void SetPublicKey (byte [] public_key) { this.public_key = public_key; + asmb_name.SetPublicKey (public_key); } public void SetPublicKeyToken (byte [] public_key_token) { this.public_key_token = public_key_token; + asmb_name.SetPublicKey (public_key); } public void SetLocale (string locale) { this.locale = locale; + //FIXME: is this correct? + asmb_name.CultureInfo = new CultureInfo (locale); } public void SetHash (byte [] hash) @@ -319,7 +323,7 @@ namespace Mono.ILASM { if (assembly_table == null && (asmb_name == "mscorlib" || asmb_name == "corlib")) { /* AddCorlib if mscorlib is being referenced but we haven't encountered a ".assembly 'name'" as yet. */ - Console.Error.WriteLine ("Warning -- Reference to undeclared extern assembly '{0}', adding.", asmb_name); + Report.Warning (String.Format ("Reference to undeclared extern assembly '{0}', adding.", asmb_name)); AddCorlib (); } if (assembly_table != null) @@ -329,7 +333,7 @@ namespace Mono.ILASM { System.Reflection.AssemblyName asmname = new System.Reflection.AssemblyName (); asmname.Name = asmb_name; - Console.Error.WriteLine ("Warning -- Reference to undeclared extern assembly '{0}', adding.", asmb_name); + Report.Warning (String.Format ("Reference to undeclared extern assembly '{0}', adding.", asmb_name)); ext_asmb = AddAssembly (asmb_name, asmname); }