summaryrefslogtreecommitdiff
path: root/AK/JsonObject.h
diff options
context:
space:
mode:
authorIdan Horowitz <idan.horowitz@gmail.com>2022-02-24 20:08:48 +0200
committerAndreas Kling <kling@serenityos.org>2022-02-27 20:37:57 +0100
commitfeb00b7105bbb55ba28b3fe8b6c526695f77bc84 (patch)
tree4be5bcdf63171729618deff8194db8fbcdb5bc3f /AK/JsonObject.h
parent6682afb5d4d6b7455f85fa3a8f07dd14cae4211e (diff)
downloadserenity-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.h5
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>