mirror of
https://github.com/json-c/json-c.git
synced 2026-03-20 13:39:06 +08:00
Merge pull request #372 from jlguardi/json-c-0.12
Json-c 0.12: Fixed Infinity bug
This commit is contained in:
@@ -337,6 +337,7 @@ struct json_object* json_tokener_parse_ex(struct json_tokener *tok,
|
||||
state = json_tokener_state_number;
|
||||
printbuf_reset(tok->pb);
|
||||
tok->is_double = 0;
|
||||
tok->st_pos = 0;
|
||||
goto redo_char;
|
||||
default:
|
||||
tok->err = json_tokener_error_parse_unexpected;
|
||||
|
||||
@@ -24,7 +24,7 @@ int main(int argc, char **argv)
|
||||
int orig_count = 0;
|
||||
json_object_object_foreach(my_object, key0, val0)
|
||||
{
|
||||
printf("Key at index %d is [%s]", orig_count, key0);
|
||||
printf("Key at index %d is [%s] %d", orig_count, key0, (val0 == NULL));
|
||||
if (strcmp(key0, "deleteme") == 0)
|
||||
{
|
||||
json_object_object_del(my_object, key0);
|
||||
@@ -41,7 +41,7 @@ int main(int argc, char **argv)
|
||||
orig_count = 0;
|
||||
json_object_object_foreach(my_object, key, val)
|
||||
{
|
||||
printf("Key at index %d is [%s]\n", orig_count, key);
|
||||
printf("Key at index %d is [%s] %d\n", orig_count, key, (val == NULL));
|
||||
orig_count++;
|
||||
if (strcmp(key, "foo2") != 0)
|
||||
continue;
|
||||
@@ -56,7 +56,7 @@ int main(int argc, char **argv)
|
||||
int retval = 0;
|
||||
json_object_object_foreach(my_object, key2, val2)
|
||||
{
|
||||
printf("Key at index %d is [%s]\n", new_count, key2);
|
||||
printf("Key at index %d is [%s] %d\n", new_count, key2, (val2 == NULL));
|
||||
new_count++;
|
||||
if (strcmp(key2, "foo2") != 0)
|
||||
continue;
|
||||
|
||||
@@ -1,15 +1,15 @@
|
||||
==== delete-in-loop test starting ====
|
||||
Key at index 0 is [foo1] (kept)
|
||||
Key at index 1 is [foo2] (kept)
|
||||
Key at index 2 is [deleteme] (deleted)
|
||||
Key at index 3 is [foo3] (kept)
|
||||
Key at index 0 is [foo1] 0 (kept)
|
||||
Key at index 1 is [foo2] 0 (kept)
|
||||
Key at index 2 is [deleteme] 0 (deleted)
|
||||
Key at index 3 is [foo3] 0 (kept)
|
||||
==== replace-value first loop starting ====
|
||||
Key at index 0 is [foo1]
|
||||
Key at index 1 is [foo2]
|
||||
Key at index 0 is [foo1] 0
|
||||
Key at index 1 is [foo2] 0
|
||||
replacing value for key [foo2]
|
||||
Key at index 2 is [foo3]
|
||||
Key at index 2 is [foo3] 0
|
||||
==== second loop starting ====
|
||||
Key at index 0 is [foo1]
|
||||
Key at index 1 is [foo2]
|
||||
Key at index 0 is [foo1] 0
|
||||
Key at index 1 is [foo2] 0
|
||||
pointer for key [foo2] does match
|
||||
Key at index 2 is [foo3]
|
||||
Key at index 2 is [foo3] 0
|
||||
|
||||
@@ -131,7 +131,7 @@ static void test_basic_parse()
|
||||
printf("new_obj.to_string()=%s\n", json_object_to_json_string(new_obj));
|
||||
json_object_put(new_obj);
|
||||
|
||||
new_obj = json_tokener_parse("{ \"abc\": 12, \"foo\": \"bar\", \"bool0\": false, \"bool1\": true, \"arr\": [ 1, 2, 3, null, 5 ] }");
|
||||
new_obj = json_tokener_parse("{ \"abc\": 12, \"foo\": \"bar\", \"bool0\": false, \"bool1\": true, \"arr\": [ 1, 2, 3, null, 5 ], \"inf\": Infinity, \"-inf\": -Infinity, \"nan\": NaN, \"def\" : -0.22, \"hij\": 0.31 }");
|
||||
printf("new_obj.to_string()=%s\n", json_object_to_json_string(new_obj));
|
||||
json_object_put(new_obj);
|
||||
}
|
||||
|
||||
@@ -24,7 +24,7 @@ new_obj.to_string()={ }
|
||||
new_obj.to_string()={ "foo": "bar" }
|
||||
new_obj.to_string()={ "foo": "bar", "baz": null, "bool0": true }
|
||||
new_obj.to_string()={ "foo": [ null, "foo" ] }
|
||||
new_obj.to_string()={ "abc": 12, "foo": "bar", "bool0": false, "bool1": true, "arr": [ 1, 2, 3, null, 5 ] }
|
||||
new_obj.to_string()={ "abc": 12, "foo": "bar", "bool0": false, "bool1": true, "arr": [ 1, 2, 3, null, 5 ], "inf": Infinity, "-inf": -Infinity, "nan": NaN, "def": -0.22, "hij": 0.31 }
|
||||
==================================
|
||||
json_tokener_parse_versbose() OK
|
||||
==================================
|
||||
|
||||
Reference in New Issue
Block a user