Optimize LOG() macro to use stack-allocated buffer for shorter texts

This commit is contained in:
Wojtek Figat
2026-03-16 16:41:16 +01:00
parent 427f4647fc
commit 7f49cae9af

View File

@@ -41,7 +41,7 @@ API_ENUM() enum class LogType
/// <summary>
/// Sends a formatted message to the log file (message type - describes level of the log (see LogType enum))
/// </summary>
#define LOG(messageType, format, ...) Log::Logger::Write(LogType::messageType, ::String::Format(TEXT(format), ##__VA_ARGS__))
#define LOG(messageType, format, ...) Log::Logger::Write(LogType::messageType, TEXT(format), ##__VA_ARGS__)
/// <summary>
/// Sends a string message to the log file (message type - describes level of the log (see LogType enum))
@@ -143,9 +143,12 @@ namespace Log
/// <param name="format">The message format string.</param>
/// <param name="args">The format arguments.</param>
template<typename... Args>
FORCE_INLINE static void Write(LogType type, const Char* format, const Args& ... args)
static void Write(LogType type, const Char* format, const Args& ... args)
{
Write(type, String::Format(format, args...));
fmt_flax::allocator allocator;
fmt_flax::memory_buffer buffer(allocator);
fmt_flax::format(buffer, format, args...);
Write(type, StringView(buffer.data(), (int32)buffer.size()));
}
/// <summary>