diff --git a/spa/include/spa/utils/json.h b/spa/include/spa/utils/json.h index 079c6dde9..2efbdc4a4 100644 --- a/spa/include/spa/utils/json.h +++ b/spa/include/spa/utils/json.h @@ -594,7 +594,7 @@ static inline int spa_json_parse_stringn(const char *val, int len, char *result, v < 0xdc00 || v > 0xdfff) continue; p += 6; - cp = 0x010000 | ((cp & 0x3ff) << 10) | (v & 0x3ff); + cp = 0x010000 + (((cp & 0x3ff) << 10) | (v & 0x3ff)); } else if (cp >= 0xdc00 && cp <= 0xdfff) continue; diff --git a/test/data/test-spa-json.txt b/test/data/test-spa-json.txt index 3297d9021..078a34e5f 100644 Binary files a/test/data/test-spa-json.txt and b/test/data/test-spa-json.txt differ diff --git a/test/test-spa-json.c b/test/test-spa-json.c index 41e6c62ef..5a74c3f57 100644 --- a/test/test-spa-json.c +++ b/test/test-spa-json.c @@ -989,10 +989,6 @@ PWTEST(json_data) /* spa_json_parse_string API doesn't do \0 */ "y_object_escaped_null_in_key.json", "y_string_null_escape.json", - - /* XXX: something with surrogate handling? */ - "y_string_last_surrogates_1_and_2.json", - "y_string_unicode_U+10FFFE_nonchar.json", }; const char *basedir = getenv("PWTEST_DATA_DIR");