From 6336e516d309e89859fe41a7ddf9afce0526f7f9 Mon Sep 17 00:00:00 2001 From: Sebastien Pouliot Date: Sat, 28 Sep 2013 13:06:35 -0400 Subject: [PATCH] Fix potential NRE and give better output for fields and some types --- mcs/tools/corcompare/mono-api-html/Comparer.cs | 12 +++++++----- mcs/tools/corcompare/mono-api-html/FieldComparer.cs | 3 ++- mcs/tools/corcompare/mono-api-html/Helpers.cs | 8 ++++++++ 3 files changed, 17 insertions(+), 6 deletions(-) diff --git a/mcs/tools/corcompare/mono-api-html/Comparer.cs b/mcs/tools/corcompare/mono-api-html/Comparer.cs index e0409e8ae17..7869637c472 100644 --- a/mcs/tools/corcompare/mono-api-html/Comparer.cs +++ b/mcs/tools/corcompare/mono-api-html/Comparer.cs @@ -64,8 +64,8 @@ namespace Xamarin.ApiDiff { foreach (var s in source) { SetContext (s); - string sn = s.Attribute ("name").Value; - var t = target.SingleOrDefault (x => x.Attribute ("name").Value == sn); + string sn = s.GetAttribute ("name"); + var t = target == null ? null : target.SingleOrDefault (x => x.GetAttribute ("name") == sn); if (t == null) { // not in target, it was removed removed.Add (s); @@ -85,9 +85,11 @@ namespace Xamarin.ApiDiff { Removed (item); } // remaining == newly added in target - foreach (var item in target) { - SetContext (item); - Added (item); + if (target != null) { + foreach (var item in target) { + SetContext (item); + Added (item); + } } } } diff --git a/mcs/tools/corcompare/mono-api-html/FieldComparer.cs b/mcs/tools/corcompare/mono-api-html/FieldComparer.cs index cd605361f79..aedc911f30c 100644 --- a/mcs/tools/corcompare/mono-api-html/FieldComparer.cs +++ b/mcs/tools/corcompare/mono-api-html/FieldComparer.cs @@ -69,7 +69,8 @@ namespace Xamarin.ApiDiff { sb.Append (ftype).Append (' '); sb.Append (name); if (ftype == "string") - sb.Append (" = \"").Append (e.Attribute ("value").Value).Append ("\";"); + sb.Append (" = \"").Append (e.Attribute ("value").Value); + sb.Append ("\";"); } if (obsolete) diff --git a/mcs/tools/corcompare/mono-api-html/Helpers.cs b/mcs/tools/corcompare/mono-api-html/Helpers.cs index 9213c61b975..1a87c0f1375 100644 --- a/mcs/tools/corcompare/mono-api-html/Helpers.cs +++ b/mcs/tools/corcompare/mono-api-html/Helpers.cs @@ -104,6 +104,14 @@ namespace Xamarin.ApiDiff { return "float"; case "System.Double": return "double"; + case "System.Byte": + return "byte"; + case "System.SByte": + return "sbyte"; + case "System.Int16": + return "short"; + case "System.UInt16": + return "ushort"; default: if (type.StartsWith (State.Namespace, StringComparison.Ordinal)) type = type.Substring (State.Namespace.Length + 1); -- 2.11.4.GIT