1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-14 12:14:58 +00:00

AK: Make JsonValue::from_string("") return a null JsonValue

This unbreaks the /var/run/utmp system which starts out as an empty
string, and is then turned into an object by the first update.

This isn't necessarily the best way for this to work, but it's how
it used to work, so this just fixes the regression for now.
This commit is contained in:
Andreas Kling 2021-12-16 21:52:20 +01:00
parent b38f8902d2
commit a409b832fa
2 changed files with 8 additions and 0 deletions

View file

@ -230,6 +230,8 @@ void JsonValue::clear()
#ifndef KERNEL #ifndef KERNEL
ErrorOr<JsonValue> JsonValue::from_string(StringView input) ErrorOr<JsonValue> JsonValue::from_string(StringView input)
{ {
if (input.is_empty())
return JsonValue();
return JsonParser(input).parse(); return JsonParser(input).parse();
} }
#endif #endif

View file

@ -122,3 +122,9 @@ TEST_CASE(json_u64_roundtrip)
EXPECT_EQ_FORCE(value.is_error(), false); EXPECT_EQ_FORCE(value.is_error(), false);
EXPECT_EQ(value.value().as_u64(), big_value); EXPECT_EQ(value.value().as_u64(), big_value);
} }
TEST_CASE(json_parse_empty_string)
{
auto value = JsonValue::from_string("");
EXPECT_EQ(value.value().is_null(), true);
}