Bring jbevain/cecil's commit 7d9999c60bd538a19a84f1211064ef104f07ee82, Fix writing...
authorMiguel de Icaza <miguel@gnome.org>
Wed, 18 Apr 2012 22:52:42 +0000 (18:52 -0400)
committerMiguel de Icaza <miguel@gnome.org>
Wed, 18 Apr 2012 22:54:20 +0000 (18:54 -0400)
mcs/class/Mono.Cecil/Mono.Cecil.PE/Image.cs
mcs/class/Mono.Cecil/Mono.Cecil.PE/ImageReader.cs
mcs/class/Mono.Cecil/Mono.Cecil.PE/ImageWriter.cs
mcs/class/Mono.Cecil/Mono.Cecil/AssemblyWriter.cs

index 9a04494f01f72079c149f0910a97169fa84fb713..e5d80752514eeba554657631915f97648ae3aa18 100644 (file)
@@ -52,6 +52,7 @@ namespace Mono.Cecil.PE {
 
                public DataDirectory Debug;
                public DataDirectory Resources;
+               public DataDirectory StrongName;
 
                public StringHeap StringHeap;
                public BlobHeap BlobHeap;
index 9baeca5eef165b41064c568a480298359665799e..b320169192c05d2b45ba54cf0413e90f9e94ae63 100644 (file)
@@ -322,6 +322,7 @@ namespace Mono.Cecil.PE {
                        // Resources                            8
                        image.Resources = ReadDataDirectory ();
                        // StrongNameSignature          8
+                       image.StrongName = ReadDataDirectory ();
                        // CodeManagerTable                     8
                        // VTableFixups                         8
                        // ExportAddressTableJumps      8
index 0b487ecc1f49e24064d6608b215c0c2298804690..bea308c9193f42ef118e8d5aba82c34049ebd185 100644 (file)
@@ -750,11 +750,8 @@ namespace Mono.Cecil.PE {
 
                int GetStrongNameLength ()
                {
-                       if ((module.Attributes & ModuleAttributes.StrongNameSigned) == 0)
-                               return 0;
-
                        if (module.Assembly == null)
-                               throw new InvalidOperationException ();
+                               return 0;
 
                        var public_key = module.Assembly.Name.PublicKey;
 
index 851b498dd4e4f4f02b467e402511bde456e21a54..bffa439c60c5675a088df5e4ca55413a584ad512 100644 (file)
@@ -97,13 +97,11 @@ namespace Mono.Cecil {
                        var symbol_writer = GetSymbolWriter (module, fq_name, symbol_writer_provider);
 
 #if !SILVERLIGHT && !CF
-                       if (parameters.StrongNameKeyPair != null && name != null)
+                       if (parameters.StrongNameKeyPair != null && name != null) {
                                name.PublicKey = parameters.StrongNameKeyPair.PublicKey;
-#endif
-
-                       if (name != null && name.HasPublicKey)
                                module.Attributes |= ModuleAttributes.StrongNameSigned;
-
+                       }
+#endif
                        var metadata = new MetadataBuilder (module, fq_name,
                                symbol_writer_provider, symbol_writer);