This commit was manufactured by cvs2svn to create branch 'mono-1-0'.
[mono.git] / mcs / tools / corcompare / ToDoAssembly.cs
index 8283a7761e69b7e1443af5cb1621d9622013ffb2..ec0f55256cba56b4e8686368781705626c67b142 100644 (file)
@@ -27,6 +27,8 @@ namespace Mono.Util.CorCompare {
                ArrayList MissingTypes = new ArrayList();
                ArrayList rgNamespaces = new ArrayList();
                string strName;
+               Assembly assMono;
+               Assembly assMS;
                Type [] rgTypesMono;
                Type [] rgTypesMS;
 
@@ -47,20 +49,20 @@ namespace Mono.Util.CorCompare {
                public static ToDoAssembly Load (string strFileMono, string strName, string strNameMS)
                {
                        Assembly assemblyMono = Assembly.LoadFrom (strFileMono);
-                       Type [] rgTypesMono = assemblyMono.GetTypes ();
-
                        Assembly assemblyMS = Assembly.LoadWithPartialName (strNameMS);
-                       Type [] rgTypesMS = assemblyMS.GetTypes ();
 
-                       return new ToDoAssembly (strName, rgTypesMono, rgTypesMS);
+                       return new ToDoAssembly (strName, assemblyMono, assemblyMS);
                }
 
-               public ToDoAssembly (string _strName, Type [] _rgTypesMono, Type [] _rgTypesMS)
+               public ToDoAssembly (string _strName, Assembly _assMono, Assembly _assMS)
                {
                        strName = _strName;
-                       rgTypesMono = _rgTypesMono;
-                       rgTypesMS = _rgTypesMS;
-                       m_nodeStatus = new NodeStatus (_rgTypesMono, _rgTypesMS);
+                       assMono = _assMono;
+                       assMS = _assMS;
+
+                       rgTypesMono = assMono.GetTypes ();
+                       rgTypesMS = assMS.GetTypes ();
+                       m_nodeStatus = new NodeStatus (_assMono, _assMS);
                }
 
                public override string Name {
@@ -85,7 +87,6 @@ namespace Mono.Util.CorCompare {
                                        string strNamespace = t.Namespace;
                                        if (strNamespace != null && strNamespace.Length > 0 &&
                                                strName != null && strName.Length > 0 &&
-                                               !strNamespace.StartsWith ("Microsoft.") &&
                                                !htGhostTypes.Contains (strName))
                                        {
                                                ArrayList rgContainedTypes = (ArrayList) mapTypes [strNamespace];
@@ -132,6 +133,13 @@ namespace Mono.Util.CorCompare {
                                }
                        }
 
+                       rgAttributes = new ArrayList ();
+                       NodeStatus nsAttributes = MissingAttribute.AnalyzeAttributes (
+                               assMono.GetCustomAttributes (true),
+                               assMS.GetCustomAttributes (true),
+                               rgAttributes);
+                       m_nodeStatus.Add (nsAttributes);
+
                        return m_nodeStatus;
                }
 
@@ -155,7 +163,6 @@ namespace Mono.Util.CorCompare {
                public override XmlElement CreateXML (XmlDocument doc)
                {
                        XmlElement assemblyElem = base.CreateXML (doc);
-//                     m_nodeStatus.SetAttributes (assemblyElem);
 
                        if (rgNamespaces.Count > 0)
                        {