diff options
author | Andreas Kling <awesomekling@gmail.com> | 2019-09-04 14:39:08 +0200 |
---|---|---|
committer | Andreas Kling <awesomekling@gmail.com> | 2019-09-04 14:40:11 +0200 |
commit | cc98ea1956d02c660227594327982fbb2cc42075 (patch) | |
tree | acefeb716f7b046eac8785a4c29bd18a70bac519 /AK/JsonArraySerializer.h | |
parent | 14a228a6f883c81391942a75fe7731d2933c4233 (diff) | |
download | serenity-cc98ea1956d02c660227594327982fbb2cc42075.zip |
Json: Add serializer fast-path for string values
Passing these through the generic JsonValue path was causing us to
instantiate temporary JsonValues that incurred a heap allocation.
This avoids that by adding specialized overloads for string types.
Diffstat (limited to 'AK/JsonArraySerializer.h')
-rw-r--r-- | AK/JsonArraySerializer.h | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/AK/JsonArraySerializer.h b/AK/JsonArraySerializer.h index 46bbd14ac5..3205ba2a73 100644 --- a/AK/JsonArraySerializer.h +++ b/AK/JsonArraySerializer.h @@ -31,6 +31,30 @@ public: value.serialize(m_builder); } + void add(const StringView& value) + { + begin_item(); + m_builder.append('"'); + m_builder.append(value); + m_builder.append('"'); + } + + void add(const String& value) + { + begin_item(); + m_builder.append('"'); + m_builder.append(value); + m_builder.append('"'); + } + + void add(const char* value) + { + begin_item(); + m_builder.append('"'); + m_builder.append(value); + m_builder.append('"'); + } + JsonArraySerializer<Builder> add_array() { begin_item(); |