[w32handle] Stop returning 0 in every cases for locking/unlocking (#3926)
[mono.git] / mcs / tools / linker / Mono.Linker.Steps / BlacklistStep.cs
index c65d3037c8e64b6960bf38b312bc2e801aaac43b..6c6344bc3c23311aae12fe03e329e8536fd8910a 100644 (file)
@@ -47,7 +47,7 @@ namespace Mono.Linker.Steps {
                protected override void Process ()
                {
                        foreach (string name in Assembly.GetExecutingAssembly ().GetManifestResourceNames ()) {
-                               if (Path.GetExtension (name) != ".xml" || !IsReferenced (GetAssemblyName (name)))
+                               if (!name.EndsWith (".xml", StringComparison.OrdinalIgnoreCase) || !IsReferenced (GetAssemblyName (name)))
                                        continue;
 
                                try {
@@ -61,22 +61,23 @@ namespace Mono.Linker.Steps {
                                }
                        }
 
-                       foreach (var rsc in Context.GetAssemblies ()
-                                                               .SelectMany (asm => asm.Modules)
-                                                               .SelectMany (mod => mod.Resources)
-                                                               .Where (res => res.ResourceType == ResourceType.Embedded)
-                                                               .Where (res => Path.GetExtension (res.Name) == ".xml")
-                                                               .Where (res => IsReferenced (GetAssemblyName (res.Name)))
-                                                               .Cast<EmbeddedResource> ()) {
-                               try {
-                                       if (Context.LogInternalExceptions)
-                                               Console.WriteLine ("Processing embedded resource linker descriptor: {0}", rsc.Name);
-
-                                       Context.Pipeline.AddStepAfter (typeof (TypeMapStep), GetExternalResolveStep (rsc));
-                               } catch (XmlException ex) {
-                                       /* This could happen if some broken XML file is embedded. */
-                                       if (Context.LogInternalExceptions)
-                                               Console.WriteLine ("Error processing {0}: {1}", rsc.Name, ex);
+                       foreach (var asm in Context.GetAssemblies ()) {
+                               foreach (var rsc in asm.Modules
+                                                                       .SelectMany (mod => mod.Resources)
+                                                                       .Where (res => res.ResourceType == ResourceType.Embedded)
+                                                                       .Where (res => res.Name.EndsWith (".xml", StringComparison.OrdinalIgnoreCase))
+                                                                       .Where (res => IsReferenced (GetAssemblyName (res.Name)))
+                                                                       .Cast<EmbeddedResource> ()) {
+                                       try {
+                                               if (Context.LogInternalExceptions)
+                                                       Console.WriteLine ("Processing embedded resource linker descriptor: {0}", rsc.Name);
+
+                                               Context.Pipeline.AddStepAfter (typeof (TypeMapStep), GetExternalResolveStep (rsc, asm));
+                                       } catch (XmlException ex) {
+                                               /* This could happen if some broken XML file is embedded. */
+                                               if (Context.LogInternalExceptions)
+                                                       Console.WriteLine ("Error processing {0}: {1}", rsc.Name, ex);
+                                       }
                                }
                        }
                }
@@ -99,14 +100,14 @@ namespace Mono.Linker.Steps {
                        return false;
                }
 
-               static ResolveFromXmlStep GetExternalResolveStep (EmbeddedResource resource)
+               static ResolveFromXmlStep GetExternalResolveStep (EmbeddedResource resource, AssemblyDefinition assembly)
                {
-                       return new ResolveFromXmlStep (GetExternalDescriptor (resource));
+                       return new ResolveFromXmlStep (GetExternalDescriptor (resource), "resource " + resource.Name + " in " + assembly.FullName);
                }
 
                static ResolveFromXmlStep GetResolveStep (string descriptor)
                {
-                       return new ResolveFromXmlStep (GetDescriptor (descriptor));
+                       return new ResolveFromXmlStep (GetDescriptor (descriptor), "descriptor " + descriptor + " from " + Assembly.GetExecutingAssembly ().FullName);
                }
 
                static XPathDocument GetExternalDescriptor (EmbeddedResource resource)