diff options
author | Idan Horowitz <idan.horowitz@gmail.com> | 2022-02-24 20:08:48 +0200 |
---|---|---|
committer | Andreas Kling <kling@serenityos.org> | 2022-02-27 20:37:57 +0100 |
commit | feb00b7105bbb55ba28b3fe8b6c526695f77bc84 (patch) | |
tree | 4be5bcdf63171729618deff8194db8fbcdb5bc3f /AK/JsonObject.h | |
parent | 6682afb5d4d6b7455f85fa3a8f07dd14cae4211e (diff) | |
download | serenity-feb00b7105bbb55ba28b3fe8b6c526695f77bc84.zip |
Everywhere: Make JSON serialization fallible
This allows us to eliminate a major source of infallible allocation in
the Kernel, as well as lay down the groundwork for OOM fallibility in
userland.
Diffstat (limited to 'AK/JsonObject.h')
-rw-r--r-- | AK/JsonObject.h | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/AK/JsonObject.h b/AK/JsonObject.h index 8d27fdf829..469ac97e44 100644 --- a/AK/JsonObject.h +++ b/AK/JsonObject.h @@ -162,10 +162,11 @@ private: template<typename Builder> inline void JsonObject::serialize(Builder& builder) const { - JsonObjectSerializer serializer { builder }; + auto serializer = MUST(JsonObjectSerializer<>::try_create(builder)); for_each_member([&](auto& key, auto& value) { - serializer.add(key, value); + MUST(serializer.add(key, value)); }); + MUST(serializer.finish()); } template<typename Builder> |