summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMax Wipfli <mail@maxwipfli.ch>2021-07-06 12:55:08 +0200
committerAndreas Kling <kling@serenityos.org>2021-07-07 15:32:17 +0200
commit0f8a6e574cdf638f81c73e782937a55d16225fe3 (patch)
tree21351e26c582b6b467c4ad51b71c49fcef465d64
parent95f769ea5130a53103626afa0c81379715af6412 (diff)
downloadserenity-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.h13
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);
}
};