From dc93ed4368301058e5261c76b9226b4488b990c1 Mon Sep 17 00:00:00 2001 From: joshua stein Date: Thu, 30 Jan 2020 17:03:58 -0600 Subject: [PATCH] AK: Add support for 64-bit size_t --- AK/LogStream.cpp | 5 +++++ AK/LogStream.h | 12 ++---------- AK/String.h | 9 ++++++--- AK/Types.h | 5 +++++ 4 files changed, 18 insertions(+), 13 deletions(-) diff --git a/AK/LogStream.cpp b/AK/LogStream.cpp index 33e58c68b84..49bae1027cb 100644 --- a/AK/LogStream.cpp +++ b/AK/LogStream.cpp @@ -62,6 +62,11 @@ const LogStream& operator<<(const LogStream& stream, u64 value) return stream << String::number(value); } +const LogStream& operator<<(const LogStream& stream, unsigned long value) +{ + return stream << String::number(value); +} + const LogStream& operator<<(const LogStream& stream, const void* value) { return stream << String::format("%p", value); diff --git a/AK/LogStream.h b/AK/LogStream.h index a2bf593b607..70513edc5ea 100644 --- a/AK/LogStream.h +++ b/AK/LogStream.h @@ -88,17 +88,9 @@ const LogStream& operator<<(const LogStream&, const String&); const LogStream& operator<<(const LogStream&, const StringView&); const LogStream& operator<<(const LogStream&, i32); const LogStream& operator<<(const LogStream&, u32); +const LogStream& operator<<(const LogStream&, i64); const LogStream& operator<<(const LogStream&, u64); - -#ifdef __serenity__ -inline const LogStream& operator<<(const LogStream& stream, size_t value) -{ - if constexpr (sizeof(size_t) == 4) - return stream << (u32)value; - else - return stream << (u64)value; -} -#endif +const LogStream& operator<<(const LogStream&, unsigned long); const LogStream& operator<<(const LogStream&, const void*); diff --git a/AK/String.h b/AK/String.h index 62e82b6180e..a4f1593a764 100644 --- a/AK/String.h +++ b/AK/String.h @@ -234,13 +234,16 @@ public: static String number(u64); static String number(u32); static String number(i32); + static String number(i64); -#ifdef __serenity__ static String number(size_t n) { - return number((u32)n); + if constexpr(sizeof(size_t) == 4) + return number((u32)n); + else if constexpr(sizeof(size_t) == 8) + return number((u64)n); + ASSERT_NOT_REACHED(); } -#endif StringView view() const { diff --git a/AK/Types.h b/AK/Types.h index 446e1c1e53c..ce9e0f651ff 100644 --- a/AK/Types.h +++ b/AK/Types.h @@ -82,6 +82,11 @@ typedef int8_t i8; typedef int16_t i16; typedef int32_t i32; typedef int64_t i64; + +#ifdef __ptrdiff_t +typedef __PTRDIFF_TYPE__ __ptrdiff_t; +#endif + #endif constexpr unsigned KB = 1024;