diff options
author | Emmanuele Bassi <ebassi@openedhand.com> | 2007-10-05 18:23:15 +0100 |
---|---|---|
committer | Emmanuele Bassi <ebassi@openedhand.com> | 2007-10-05 18:23:15 +0100 |
commit | ad95c8bf8e4103058d42ae71f47e6980e3b52c34 (patch) | |
tree | f42e81f2a0dc4dbf3394e2c1e69353e2f9aa7ae6 /json-glib/json-parser.c | |
parent | 220838e4e61c5a8fd9cf627da7309acf44fa82f0 (diff) | |
download | json-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.c | 8 |
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); |