mirror of
https://gitlab.freedesktop.org/pipewire/pipewire.git
synced 2026-03-02 01:40:31 -05:00
json: a container start also ends a bare string
This stops the parser from seeing foo{bar as a single string.
This also makes a valid test work, add another small test.
This commit is contained in:
parent
848ac24490
commit
692590b30a
2 changed files with 8 additions and 1 deletions
|
|
@ -232,7 +232,7 @@ SPA_API_JSON int spa_json_next(struct spa_json * iter, const char **value)
|
|||
switch (cur) {
|
||||
case '\0':
|
||||
case '\t': case ' ': case '\r': case '\n':
|
||||
case '"': case '#':
|
||||
case '"': case '#': case '{': case '[':
|
||||
case ':': case ',': case '=': case ']': case '}':
|
||||
iter->state = __STRUCT | flag;
|
||||
if (iter->depth > 0)
|
||||
|
|
|
|||
|
|
@ -350,6 +350,12 @@ PWTEST(json_parse)
|
|||
expect_string(&it[0], "hello");
|
||||
expect_end(&it[0]);
|
||||
|
||||
json = "xy{}";
|
||||
spa_json_init(&it[0], json, strlen(json));
|
||||
expect_string_or_bare(&it[0], "xy");
|
||||
expect_object(&it[0], &it[1]);
|
||||
expect_end(&it[0]);
|
||||
|
||||
/* top-level context */
|
||||
json = "x y x y";
|
||||
spa_json_init(&it[0], json, strlen(json));
|
||||
|
|
@ -944,6 +950,7 @@ PWTEST(json_data)
|
|||
"n_array_missing_value.json",
|
||||
"n_array_number_and_comma.json",
|
||||
"n_array_number_and_several_commas.json",
|
||||
"n_array_inner_array_no_comma.json",
|
||||
"n_object_comma_instead_of_colon.json",
|
||||
"n_object_double_colon.json",
|
||||
"n_object_missing_semicolon.json",
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue