From 02e199a9cb76a983cd5d9ceb1540080f675a8141 Mon Sep 17 00:00:00 2001 From: Andreas Kling Date: Sun, 16 Feb 2020 12:48:58 +0100 Subject: [PATCH] AK: Don't construct a String every time we LogStream<< a number --- AK/LogStream.cpp | 28 +++++++++++++++++++++------- 1 file changed, 21 insertions(+), 7 deletions(-) diff --git a/AK/LogStream.cpp b/AK/LogStream.cpp index 7d07f17117..f986cd0759 100644 --- a/AK/LogStream.cpp +++ b/AK/LogStream.cpp @@ -49,37 +49,51 @@ const LogStream& operator<<(const LogStream& stream, const StringView& value) const LogStream& operator<<(const LogStream& stream, int value) { - return stream << String::number(value); + char buffer[32]; + sprintf(buffer, "%d", value); + return stream << buffer; } const LogStream& operator<<(const LogStream& stream, long value) { - return stream << String::number(value); + char buffer[32]; + sprintf(buffer, "%ld", value); + return stream << buffer; } const LogStream& operator<<(const LogStream& stream, long long value) { - return stream << String::number(value); + char buffer[32]; + sprintf(buffer, "%lld", value); + return stream << buffer; } const LogStream& operator<<(const LogStream& stream, unsigned value) { - return stream << String::number(value); + char buffer[32]; + sprintf(buffer, "%u", value); + return stream << buffer; } const LogStream& operator<<(const LogStream& stream, unsigned long long value) { - return stream << String::number(value); + char buffer[32]; + sprintf(buffer, "%llu", value); + return stream << buffer; } const LogStream& operator<<(const LogStream& stream, unsigned long value) { - return stream << String::number(value); + char buffer[32]; + sprintf(buffer, "%lu", value); + return stream << buffer; } const LogStream& operator<<(const LogStream& stream, const void* value) { - return stream << String::format("%p", value); + char buffer[32]; + sprintf(buffer, "%p", value); + return stream << buffer; } #if defined(__serenity__) && !defined(KERNEL) && !defined(BOOTSTRAPPER)