Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/mono.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAtsushi Eno <atsushieno@gmail.com>2009-11-20 15:08:20 +0300
committerAtsushi Eno <atsushieno@gmail.com>2009-11-20 15:08:20 +0300
commitba4906bc4f4c7d818bc8ec2c8070f1c91280436c (patch)
treed0137d31153aebb48012395c10abfb29e39f15e4 /mcs/class/System.XML/System.Xml.XPath
parent4ba4545e8d132e4af4f2b0f5330f8fb407c44d27 (diff)
backport r146613.
svn path=/branches/mono-2-6/mcs/; revision=146614
Diffstat (limited to 'mcs/class/System.XML/System.Xml.XPath')
-rw-r--r--mcs/class/System.XML/System.Xml.XPath/ChangeLog5
-rw-r--r--mcs/class/System.XML/System.Xml.XPath/DefaultContext.cs5
2 files changed, 9 insertions, 1 deletions
diff --git a/mcs/class/System.XML/System.Xml.XPath/ChangeLog b/mcs/class/System.XML/System.Xml.XPath/ChangeLog
index 8d2802799f0..eed98681d00 100644
--- a/mcs/class/System.XML/System.Xml.XPath/ChangeLog
+++ b/mcs/class/System.XML/System.Xml.XPath/ChangeLog
@@ -1,3 +1,8 @@
+2009-11-20 Atsushi Enomoto <atsushi@ximian.com>
+
+ * DefaultContext.cs : do not use sloppy XmlConvert to parse xpath
+ number. Fixed bug #556619.
+
2009-09-15 Atsushi Enomoto <atsushi@ximian.com>
* Expression.cs : to support external function that returns non-
diff --git a/mcs/class/System.XML/System.Xml.XPath/DefaultContext.cs b/mcs/class/System.XML/System.Xml.XPath/DefaultContext.cs
index 97b322859ee..c6b8d4cc18a 100644
--- a/mcs/class/System.XML/System.Xml.XPath/DefaultContext.cs
+++ b/mcs/class/System.XML/System.Xml.XPath/DefaultContext.cs
@@ -143,7 +143,10 @@ namespace System.Xml.XPath
if (s.Length == 0)
return double.NaN;
try {
- return XmlConvert.ToDouble (s);
+ // workaround for allowed ".xxx" style.
+ if (s [0] == '.')
+ s = '.' + s;
+ return Double.Parse (s, NumberStyles.AllowLeadingWhite | NumberStyles.AllowTrailingWhite | NumberStyles.AllowLeadingSign | NumberStyles.AllowDecimalPoint, NumberFormatInfo.InvariantInfo);
} catch (System.OverflowException) {
return double.NaN;
} catch (System.FormatException) {