2007-11-27 Atsushi Enomoto <atsushi@ximian.com>
authorAtsushi Eno <atsushieno@gmail.com>
Tue, 27 Nov 2007 13:19:46 +0000 (13:19 -0000)
committerAtsushi Eno <atsushieno@gmail.com>
Tue, 27 Nov 2007 13:19:46 +0000 (13:19 -0000)
        * mono-api-diff.cs : expand all missing types in missing
          namespaces so that we don't get just one "missing" mark
          for the entire namespace.

svn path=/trunk/mcs/; revision=90310

mcs/tools/corcompare/ChangeLog
mcs/tools/corcompare/mono-api-diff.cs

index eb59a8cecdeec90d04b7e8c8567bc58950bdebbe..7fa8678f30a3cebba1b62ebdf0ae12ea81d26cbb 100644 (file)
@@ -1,3 +1,9 @@
+2007-11-27  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * mono-api-diff.cs : expand all missing types in missing
+         namespaces so that we don't get just one "missing" mark
+         for the entire namespace.
+
 2007-08-12  Marek Safar <marek.safar@gmail.com>
 
        * Makefile: Build transform too.
index e6089db5dbaffc81ee50111e1ad527749c7dce8f..afa10d33ae284fceee0b6b92a724034729dedfae 100644 (file)
@@ -463,19 +463,17 @@ namespace Mono.AssemblyCompare
                                newNS.Add (node);
                                AddAttribute (node, "name", xns.Name);
 
-                               if (oh.ContainsKey (xns.Name)) {
-                                       int idx = (int) oh [xns.Name];
-                                       xns.CompareTo (document, node, other [idx]);
+                               int idx = -1;
+                               if (oh.ContainsKey (xns.Name))
+                                       idx = (int) oh [xns.Name];
+                               XMLNamespace ons = idx >= 0 ? (XMLNamespace) other [idx] : null;
+                               xns.CompareTo (document, node, ons);
+                               if (idx >= 0)
                                        other [idx] = null;
-                                       xns.AddCountersAttributes (node);
-                                       counters.Present++;
-                                       counters.PresentTotal++;
-                                       counters.AddPartialToTotal (xns.Counters);
-                               } else {
-                                       AddAttribute (node, "presence", "missing");
-                                       counters.Missing++;
-                                       counters.MissingTotal++;
-                               }
+                               xns.AddCountersAttributes (node);
+                               counters.Present++;
+                               counters.PresentTotal++;
+                               counters.AddPartialToTotal (xns.Counters);
                        }
 
                        if (other != null) {
@@ -562,7 +560,7 @@ namespace Mono.AssemblyCompare
                        XmlNode childA = doc.CreateElement ("classes", null);
                        parent.AppendChild (childA);
 
-                       CompareTypes (childA, nspace.types);
+                       CompareTypes (childA, nspace != null ? nspace.types : new XMLClass [0]);
                }
 
                void CompareTypes (XmlNode parent, XMLClass [] other)