From b0d91cbf3afd72dc320a8f5386b2fe3f3fe0ae68 Mon Sep 17 00:00:00 2001 From: vaxerski <43317083+vaxerski@users.noreply.github.com> Date: Mon, 25 Jul 2022 22:40:34 +0200 Subject: simplify formats --- src/debug/Log.cpp | 29 ++++++----------------------- 1 file changed, 6 insertions(+), 23 deletions(-) (limited to 'src/debug') diff --git a/src/debug/Log.cpp b/src/debug/Log.cpp index 59d2d239..367cf8ca 100644 --- a/src/debug/Log.cpp +++ b/src/debug/Log.cpp @@ -58,37 +58,20 @@ void Debug::log(LogLevel level, const char* fmt, ...) { ofs << "] "; } - char buf[LOGMESSAGESIZE] = ""; - char* outputStr; - int logLen; + char* outputStr = nullptr; va_list args; va_start(args, fmt); - logLen = vsnprintf(buf, sizeof buf, fmt, args); + vasprintf(&outputStr, fmt, args); va_end(args); - if ((long unsigned int)logLen < sizeof buf) { - outputStr = strdup(buf); - } else { - outputStr = (char*)malloc(logLen + 1); - - if (!outputStr) { - printf("CRITICAL: Cannot alloc size %d for log! (Out of memory?)", logLen + 1); - return; - } - - va_start(args, fmt); - vsnprintf(outputStr, logLen + 1U, fmt, args); - va_end(args); - } + std::string output = std::string(outputStr); + free(outputStr); - ofs << outputStr << "\n"; + ofs << output << "\n"; ofs.close(); // log it to the stdout too. - std::cout << outputStr << "\n"; - - // free the log - free(outputStr); + std::cout << output << "\n"; } -- cgit v1.2.3