From eaeb793454fb0306e394693349c691505e357015 Mon Sep 17 00:00:00 2001 From: asynts Date: Tue, 22 Sep 2020 13:27:40 +0200 Subject: [PATCH] AK: Use format in String::number. --- AK/String.cpp | 56 ++++++++++++++------------------------------------- AK/String.h | 9 +++------ 2 files changed, 18 insertions(+), 47 deletions(-) diff --git a/AK/String.cpp b/AK/String.cpp index 4cb7f874ea..29a5915419 100644 --- a/AK/String.cpp +++ b/AK/String.cpp @@ -25,6 +25,7 @@ */ #include +#include #include #include #include @@ -214,49 +215,22 @@ Optional String::to_uint() const return StringUtils::convert_to_uint(view()); } -String String::number(unsigned long long value) -{ - int size; - char buffer[32]; - size = snprintf(buffer, sizeof(buffer), "%llu", value); - return String(buffer, size); -} +template +String String::number(T value) { return AK::format("{}", value); } -String String::number(unsigned long value) -{ - int size; - char buffer[32]; - size = snprintf(buffer, sizeof(buffer), "%lu", value); - return String(buffer, size); -} +template String String::number(unsigned char); +template String String::number(unsigned short); +template String String::number(unsigned int); +template String String::number(unsigned long); +template String String::number(unsigned long long); +template String String::number(char); +template String String::number(short); +template String String::number(int); +template String String::number(long); +template String String::number(long long); -String String::number(unsigned value) -{ - char buffer[32]; - int size = snprintf(buffer, sizeof(buffer), "%u", value); - return String(buffer, size); -} - -String String::number(long long value) -{ - char buffer[32]; - int size = snprintf(buffer, sizeof(buffer), "%lld", value); - return String(buffer, size); -} - -String String::number(long value) -{ - char buffer[32]; - int size = snprintf(buffer, sizeof(buffer), "%ld", value); - return String(buffer, size); -} - -String String::number(int value) -{ - char buffer[32]; - int size = snprintf(buffer, sizeof(buffer), "%d", value); - return String(buffer, size); -} +// C++ is weird. +template String String::number(signed char); String String::format(const char* fmt, ...) { diff --git a/AK/String.h b/AK/String.h index deed272724..6575231638 100644 --- a/AK/String.h +++ b/AK/String.h @@ -238,12 +238,9 @@ public: } static String format(const char*, ...); - static String number(unsigned); - static String number(unsigned long); - static String number(unsigned long long); - static String number(int); - static String number(long); - static String number(long long); + + template + static String number(T); StringView view() const;