From 8f093e91e068cb2952a456566879bda81401c782 Mon Sep 17 00:00:00 2001 From: Idan Horowitz Date: Wed, 16 Feb 2022 00:23:34 +0200 Subject: [PATCH] AK: Exclude StringBuilder String APIs from the Kernel These APIs are only used by userland, and String is OOM-infallible, so let's just ifdef it out of the Kernel. --- AK/StringBuilder.cpp | 11 +++++++++-- AK/StringBuilder.h | 6 ++++++ 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/AK/StringBuilder.cpp b/AK/StringBuilder.cpp index 22c31507b2..e537e57c19 100644 --- a/AK/StringBuilder.cpp +++ b/AK/StringBuilder.cpp @@ -8,13 +8,16 @@ #include #include #include -#include #include #include #include -#include #include +#ifndef KERNEL +# include +# include +#endif + namespace AK { inline ErrorOr StringBuilder::will_append(size_t size) @@ -87,6 +90,7 @@ ByteBuffer StringBuilder::to_byte_buffer() const return ByteBuffer::copy(data(), length()).release_value_but_fixme_should_propagate_errors(); } +#ifndef KERNEL String StringBuilder::to_string() const { if (is_empty()) @@ -98,6 +102,7 @@ String StringBuilder::build() const { return to_string(); } +#endif StringView StringBuilder::string_view() const { @@ -125,6 +130,7 @@ void StringBuilder::append_code_point(u32 code_point) MUST(try_append_code_point(code_point)); } +#ifndef KERNEL ErrorOr StringBuilder::try_append(Utf16View const& utf16_view) { for (size_t i = 0; i < utf16_view.length_in_code_units();) { @@ -140,6 +146,7 @@ void StringBuilder::append(Utf16View const& utf16_view) { MUST(try_append(utf16_view)); } +#endif ErrorOr StringBuilder::try_append(Utf32View const& utf32_view) { diff --git a/AK/StringBuilder.h b/AK/StringBuilder.h index c7e81e8625..6abf6d99a2 100644 --- a/AK/StringBuilder.h +++ b/AK/StringBuilder.h @@ -22,7 +22,9 @@ public: ~StringBuilder() = default; ErrorOr try_append(StringView); +#ifndef KERNEL ErrorOr try_append(Utf16View const&); +#endif ErrorOr try_append(Utf32View const&); ErrorOr try_append_code_point(u32); ErrorOr try_append(char); @@ -35,7 +37,9 @@ public: ErrorOr try_append(char const*, size_t); void append(StringView); +#ifndef KERNEL void append(Utf16View const&); +#endif void append(Utf32View const&); void append(char); void append_code_point(u32); @@ -52,8 +56,10 @@ public: MUST(vformat(*this, fmtstr.view(), variadic_format_params)); } +#ifndef KERNEL [[nodiscard]] String build() const; [[nodiscard]] String to_string() const; +#endif [[nodiscard]] ByteBuffer to_byte_buffer() const; [[nodiscard]] StringView string_view() const;