Parcourir la source

2010-01-12 Atsushi Enomoto <[email protected]>

	* XmlConvert.cs : handle Infinity and -Infinity here due to the
	  commented reason.


svn path=/trunk/mcs/; revision=149387
Atsushi Eno il y a 16 ans
Parent
commit
e48ffb5e67

+ 5 - 0
mcs/class/System.XML/System.Xml/ChangeLog

@@ -1,3 +1,8 @@
+2010-01-12  Atsushi Enomoto  <[email protected]>
+
+	* XmlConvert.cs : handle Infinity and -Infinity here due to the
+	  commented reason.
+
 2010-01-12  Atsushi Enomoto  <[email protected]>
 
 	* XmlConvert.cs : ToSingle(string) should do the same as ToDouble().

+ 7 - 2
mcs/class/System.XML/System.Xml/XmlConvert.cs

@@ -415,12 +415,17 @@ namespace System.Xml {
 			while (Char.IsWhiteSpace (s [sEndPos]))
 				sEndPos--;
 
+			if (TryParseStringConstant ("NaN", s, sidx, sEndPos))
+				return Single.NaN;
 			if (TryParseStringConstant ("INF", s, sidx, sEndPos))
 				return Single.PositiveInfinity;
 			if (TryParseStringConstant ("-INF", s, sidx, sEndPos))
 				return Single.NegativeInfinity;
-			if (TryParseStringConstant ("NaN", s, sidx, sEndPos))
-				return Single.NaN;
+			// Handle these here because Single.Parse("Infinity") is invalid while XmlConvert.ToSingle("Infinity") is valid.
+			if (TryParseStringConstant ("Infinity", s, sidx, sEndPos))
+				return Single.PositiveInfinity;
+			if (TryParseStringConstant ("-Infinity", s, sidx, sEndPos))
+				return Single.NegativeInfinity;
 			return 0;
 		}