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
path: root/mcs
diff options
context:
space:
mode:
authorGeoff Norton <grompf@sublimeintervention.com>2010-04-01 10:38:50 +0400
committerGeoff Norton <grompf@sublimeintervention.com>2010-04-01 10:38:50 +0400
commit7aab767a0551df6f2f0e8b8f7533c087a91f1768 (patch)
tree56a8a9e98bbde547201786ed64a588f4a5a282c5 /mcs
parent482a8d2725e3183d755994c96430c18316b6f407 (diff)
2009-08-13 Atsushi Enomoto <atsushi@ximian.com>
* Makefile : update profile check. 2008-06-10 Atsushi Enomoto <atsushi@ximian.com> * System.Json.dll.sources, Makefile : initial checkin. svn path=/branches/mono-2-6/mcs/; revision=154612
Diffstat (limited to 'mcs')
-rw-r--r--mcs/class/System.Json/System.Json/ChangeLog12
-rw-r--r--mcs/class/System.Json/System.Json/JsonValue.cs26
2 files changed, 25 insertions, 13 deletions
diff --git a/mcs/class/System.Json/System.Json/ChangeLog b/mcs/class/System.Json/System.Json/ChangeLog
index a89f26758ae..b1b55dea773 100644
--- a/mcs/class/System.Json/System.Json/ChangeLog
+++ b/mcs/class/System.Json/System.Json/ChangeLog
@@ -1,3 +1,15 @@
+2010-04-01 Miguel de Icaza <miguel@novell.com>
+
+ * JsonValue.cs: We need to use Convert.ToXXXX for numbers as we
+ always end up reporting the value JsonType.Number regardless of
+ the underlying storage (int, long or decimal). The parser
+ picks the best storage suitable for the data, and can end up using
+ "ints" for values that sometimes use longs.
+
+ This causes problems when derefercing the data for example, if you
+ have an int and try to get it out as a long you end up with an
+ invalid cast exception.
+
2010-02-18 Atsushi Enomoto <atsushi@ximian.com>
* JsonValue.cs : fix string escaping, it was giving wrong output
diff --git a/mcs/class/System.Json/System.Json/JsonValue.cs b/mcs/class/System.Json/System.Json/JsonValue.cs
index 9e4bfd589ea..6d076a8838f 100644
--- a/mcs/class/System.Json/System.Json/JsonValue.cs
+++ b/mcs/class/System.Json/System.Json/JsonValue.cs
@@ -253,70 +253,70 @@ namespace System.Json
{
if (value == null)
throw new ArgumentNullException ("value");
- return (bool) ((JsonPrimitive) value).Value;
+ return Convert.ToBoolean (((JsonPrimitive) value).Value);
}
public static implicit operator byte (JsonValue value)
{
if (value == null)
throw new ArgumentNullException ("value");
- return (byte) ((JsonPrimitive) value).Value;
+ return Convert.ToByte (((JsonPrimitive) value).Value);
}
public static implicit operator char (JsonValue value)
{
if (value == null)
throw new ArgumentNullException ("value");
- return (char) ((JsonPrimitive) value).Value;
+ return Convert.ToChar (((JsonPrimitive) value).Value);
}
public static implicit operator decimal (JsonValue value)
{
if (value == null)
throw new ArgumentNullException ("value");
- return (decimal) ((JsonPrimitive) value).Value;
+ return Convert.ToDecimal (((JsonPrimitive) value).Value);
}
public static implicit operator double (JsonValue value)
{
if (value == null)
throw new ArgumentNullException ("value");
- return (double) ((JsonPrimitive) value).Value;
+ return Convert.ToDouble (((JsonPrimitive) value).Value);
}
public static implicit operator float (JsonValue value)
{
if (value == null)
throw new ArgumentNullException ("value");
- return (float) ((JsonPrimitive) value).Value;
+ return Convert.ToSingle (((JsonPrimitive) value).Value);
}
public static implicit operator int (JsonValue value)
{
if (value == null)
throw new ArgumentNullException ("value");
- return (int) ((JsonPrimitive) value).Value;
+ return Convert.ToInt32 (((JsonPrimitive) value).Value);
}
public static implicit operator long (JsonValue value)
{
if (value == null)
throw new ArgumentNullException ("value");
- return (long) ((JsonPrimitive) value).Value;
+ return Convert.ToInt64 (((JsonPrimitive) value).Value);
}
public static implicit operator sbyte (JsonValue value)
{
if (value == null)
throw new ArgumentNullException ("value");
- return (sbyte) ((JsonPrimitive) value).Value;
+ return Convert.ToSByte (((JsonPrimitive) value).Value);
}
public static implicit operator short (JsonValue value)
{
if (value == null)
throw new ArgumentNullException ("value");
- return (short) ((JsonPrimitive) value).Value;
+ return Convert.ToInt16 (((JsonPrimitive) value).Value);
}
public static implicit operator string (JsonValue value)
@@ -330,21 +330,21 @@ namespace System.Json
{
if (value == null)
throw new ArgumentNullException ("value");
- return (uint) ((JsonPrimitive) value).Value;
+ return Convert.ToUInt16 (((JsonPrimitive) value).Value);
}
public static implicit operator ulong (JsonValue value)
{
if (value == null)
throw new ArgumentNullException ("value");
- return (ulong) ((JsonPrimitive) value).Value;
+ return Convert.ToUInt64(((JsonPrimitive) value).Value);
}
public static implicit operator ushort (JsonValue value)
{
if (value == null)
throw new ArgumentNullException ("value");
- return (ushort) ((JsonPrimitive) value).Value;
+ return Convert.ToUInt16 (((JsonPrimitive) value).Value);
}
public static implicit operator DateTime (JsonValue value)