From a7f538fb637e2938f8388fd10e640679a0b00b6f Mon Sep 17 00:00:00 2001 From: Andreas Kling Date: Mon, 7 Oct 2019 10:46:58 +0200 Subject: [PATCH] AK: Make String compile on platforms where size_t==u32 This kind of thing is a bit annoying. On Serenity, size_t is the same size as u32, but not the same type. Because of "long" or whatever. This patch makes String not complain about duplicate overloads. --- AK/String.cpp | 12 ++++++++---- AK/String.h | 13 ++++++++++--- 2 files changed, 18 insertions(+), 7 deletions(-) diff --git a/AK/String.cpp b/AK/String.cpp index 076271f3ac..665936af54 100644 --- a/AK/String.cpp +++ b/AK/String.cpp @@ -184,17 +184,21 @@ unsigned String::to_uint(bool& ok) const return value; } -String String::number(size_t value) +String String::number(u64 value) { - return String::format("%zu", value); +#ifdef __serenity__ + return String::format("%Q", value); +#else + return String::format("%llu", value); +#endif } -String String::number(unsigned value) +String String::number(u32 value) { return String::format("%u", value); } -String String::number(int value) +String String::number(i32 value) { return String::format("%d", value); } diff --git a/AK/String.h b/AK/String.h index 0838d9b40e..718b51cea0 100755 --- a/AK/String.h +++ b/AK/String.h @@ -194,9 +194,16 @@ public: } static String format(const char*, ...); - static String number(size_t); - static String number(unsigned); - static String number(int); + static String number(u64); + static String number(u32); + static String number(i32); + +#ifdef __serenity__ + static String number(size_t n) + { + return number((u32)n); + } +#endif StringView view() const { return { characters(), length() }; }