Add cleanup call.
[mono.git] / mcs / mcs / rootcontext.cs
index 6c84b9f1e12f4f6c3b04732b6ec73dc41fc72a53..b429b974de11d5c2ee4ab09df266c47ff387ce9b 100755 (executable)
@@ -353,6 +353,7 @@ namespace Mono.CSharp {
                                "System.ParamArrayAttribute",
                                "System.Security.UnverifiableCodeAttribute",
                                "System.Runtime.CompilerServices.IndexerNameAttribute",
+                               "System.Runtime.InteropServices.InAttribute"
                        };
 
                        // We must store them here before calling BootstrapCorlib_ResolveDelegate.
@@ -651,13 +652,6 @@ namespace Mono.CSharp {
                        if (type_container_resolve_order != null){
                                if (RootContext.StdLib){
                                        foreach (TypeContainer tc in type_container_resolve_order) {
-                                               // When compiling corlib, these types have already been
-                                               // populated from BootCorlib_PopulateCoreTypes ().
-                                               if (((tc.Name == "System.Object") ||
-                                                    (tc.Name == "System.Attribute") ||
-                                                    (tc.Name == "System.ValueType")))
-                                               continue;
-
                                                if ((tc.ModFlags & Modifiers.NEW) == 0)
                                                        tc.DefineMembers (root);
                                                else
@@ -665,12 +659,19 @@ namespace Mono.CSharp {
                                        }
                                } else {
                                        foreach (TypeContainer tc in type_container_resolve_order) {
+                                               // When compiling corlib, these types have already been
+                                               // populated from BootCorlib_PopulateCoreTypes ().
+                                               if (((tc.Name == "System.Object") ||
+                                                    (tc.Name == "System.Attribute") ||
+                                                    (tc.Name == "System.ValueType")))
+                                               continue;
+
                                                if ((tc.ModFlags & Modifiers.NEW) == 0)
                                                        tc.DefineMembers (root);
                                                else
                                                        Report1530 (tc.Location);
                                        }
-                               }
+                               } 
                        }
 
                        ArrayList delegates = root.Delegates;
@@ -754,7 +755,7 @@ namespace Mono.CSharp {
                                        Attributes attrs = (Attributes) de.Value;
                                        
                                        dummy.Namespace = ns;
-                                       Attribute.ApplyAttributes (temp_ec, ab, ab, attrs, attrs.Location);
+                                       Attribute.ApplyAttributes (temp_ec, ab, ab, attrs);
                                }
                        }
 
@@ -832,16 +833,15 @@ namespace Mono.CSharp {
                // Adds a global attribute that was declared in `container', 
                // the attribute is in `attr', and it was defined at `loc'
                //
-               static public void AddGlobalAttribute (TypeContainer container,
-                                                      AttributeSection attr, Location loc)
+               static public void AddGlobalAttributeSection (TypeContainer container, AttributeSection attr)
                {
                        Namespace ns = container.Namespace;
                        Attributes a = (Attributes) global_attributes [ns];
 
                        if (a == null)
-                               global_attributes [ns] = new Attributes (attr, loc);
+                               global_attributes [ns] = new Attributes (attr);
                        else
-                               a.AddAttribute (attr);
+                               a.AddAttributeSection (attr);
                }
        }
 }