From fee2a03ba908bcf7e3ffae0fafbd809257536c9d Mon Sep 17 00:00:00 2001 From: Brian Gianforcaro Date: Tue, 31 Aug 2021 21:44:05 -0700 Subject: [PATCH] AK: Pass AK::Format TypeErasedFormatParams by reference in AK::String This silences a overeager warning in sonar cloud, warning that slicing could occur with `VariadicFormatParams` which derives from `TypeErasedFormatParams`. Reference: https://sonarcloud.io/project/issues?id=SerenityOS_serenity&issues=AXuVPBW3k92xXUF3qXTE&open=AXuVPBW3k92xXUF3qXTE This is a continuation of f0b3aa033134b788a28fe8cf8ff6028d0e7941e8. --- AK/String.cpp | 2 +- AK/String.h | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/AK/String.cpp b/AK/String.cpp index dae488464c..f20a4ae61e 100644 --- a/AK/String.cpp +++ b/AK/String.cpp @@ -515,7 +515,7 @@ InputStream& operator>>(InputStream& stream, String& string) } } -String String::vformatted(StringView fmtstr, TypeErasedFormatParams params) +String String::vformatted(StringView fmtstr, TypeErasedFormatParams& params) { StringBuilder builder; vformat(builder, fmtstr, params); diff --git a/AK/String.h b/AK/String.h index 9bc3e5e2d1..f043729624 100644 --- a/AK/String.h +++ b/AK/String.h @@ -265,12 +265,13 @@ public: return String((const char*)buffer.data(), buffer.size(), should_chomp); } - [[nodiscard]] static String vformatted(StringView fmtstr, TypeErasedFormatParams); + [[nodiscard]] static String vformatted(StringView fmtstr, TypeErasedFormatParams&); template [[nodiscard]] static String formatted(CheckedFormatString&& fmtstr, const Parameters&... parameters) { - return vformatted(fmtstr.view(), VariadicFormatParams { parameters... }); + VariadicFormatParams variadic_format_parameters { parameters... }; + return vformatted(fmtstr.view(), variadic_format_parameters); } template