summaryrefslogtreecommitdiff
path: root/json-glib/json-parser.c
diff options
context:
space:
mode:
authorEmmanuele Bassi <ebassi@openedhand.com>2007-10-05 18:23:15 +0100
committerEmmanuele Bassi <ebassi@openedhand.com>2007-10-05 18:23:15 +0100
commitad95c8bf8e4103058d42ae71f47e6980e3b52c34 (patch)
treef42e81f2a0dc4dbf3394e2c1e69353e2f9aa7ae6 /json-glib/json-parser.c
parent220838e4e61c5a8fd9cf627da7309acf44fa82f0 (diff)
downloadjson-glib-ad95c8bf8e4103058d42ae71f47e6980e3b52c34.tar.gz
Use doubles when parsing, not floats
GScanner advertise the floating point values as floats, but it really uses doubles. Hence, we need to use G_TYPE_DOUBLE when saving the parsed constants into a GValue.
Diffstat (limited to 'json-glib/json-parser.c')
-rw-r--r--json-glib/json-parser.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/json-glib/json-parser.c b/json-glib/json-parser.c
index fa57995..2f9e24c 100644
--- a/json-glib/json-parser.c
+++ b/json-glib/json-parser.c
@@ -431,8 +431,8 @@ json_parse_array (JsonParser *parser,
break;
case G_TOKEN_FLOAT:
- g_value_init (&value, G_TYPE_FLOAT);
- g_value_set_float (&value, scanner->value.v_float);
+ g_value_init (&value, G_TYPE_DOUBLE);
+ g_value_set_double (&value, scanner->value.v_float);
node = json_node_new (JSON_NODE_VALUE);
json_node_set_value (node, &value);
@@ -631,8 +631,8 @@ json_parse_object (JsonParser *parser,
break;
case G_TOKEN_FLOAT:
- g_value_init (&value, G_TYPE_FLOAT);
- g_value_set_float (&value, scanner->value.v_float);
+ g_value_init (&value, G_TYPE_DOUBLE);
+ g_value_set_double (&value, scanner->value.v_float);
node = json_node_new (JSON_NODE_VALUE);
json_node_set_value (node, &value);