diff options
author | Max Wipfli <mail@maxwipfli.ch> | 2021-07-06 12:55:08 +0200 |
---|---|---|
committer | Andreas Kling <kling@serenityos.org> | 2021-07-07 15:32:17 +0200 |
commit | 0f8a6e574cdf638f81c73e782937a55d16225fe3 (patch) | |
tree | 21351e26c582b6b467c4ad51b71c49fcef465d64 | |
parent | 95f769ea5130a53103626afa0c81379715af6412 (diff) | |
download | serenity-0f8a6e574cdf638f81c73e782937a55d16225fe3.zip |
Kernel: Add formatter function for OwnPtr<KString>
This adds a formatter function for OwnPtr<KString>. This is added mainly
because lots of dbgln() statements generate Strings (such as absolute
paths) which are only used for debugging. Instead of catching possible
OOM situations at all the dbgln() callsites, this makes it possible to
let the formatter code handle those situations by outputting "[out of
memory]" if the OwnPtr is null.
-rw-r--r-- | Kernel/KString.h | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/Kernel/KString.h b/Kernel/KString.h index cb7a79b06a..cb0ce3b854 100644 --- a/Kernel/KString.h +++ b/Kernel/KString.h @@ -48,7 +48,18 @@ template<> struct Formatter<Kernel::KString> : Formatter<StringView> { void format(FormatBuilder& builder, Kernel::KString const& value) { - Formatter<StringView>::format(builder, value.characters()); + Formatter<StringView>::format(builder, value.view()); + } +}; + +template<> +struct Formatter<OwnPtr<Kernel::KString>> : Formatter<StringView> { + void format(FormatBuilder& builder, OwnPtr<Kernel::KString> const& value) + { + if (value) + Formatter<StringView>::format(builder, value->view()); + else + Formatter<StringView>::format(builder, "[out of memory]"sv); } }; |