Przeglądaj źródła

Merge pull request #11853 from endragor/long-string-logging

Fix logging of long strings via RotatedFileLogger
Andreas Haas 8 lat temu
rodzic
commit
fd1d886cf8
1 zmienionych plików z 4 dodań i 1 usunięć
  1. 4 1
      core/io/logger.cpp

+ 4 - 1
core/io/logger.cpp

@@ -177,11 +177,14 @@ void RotatedFileLogger::logv(const char *p_format, va_list p_list, bool p_err) {
 		const int static_buf_size = 512;
 		char static_buf[static_buf_size];
 		char *buf = static_buf;
+		va_list list_copy;
+		va_copy(list_copy, p_list);
 		int len = vsnprintf(buf, static_buf_size, p_format, p_list);
 		if (len >= static_buf_size) {
 			buf = (char *)Memory::alloc_static(len + 1);
-			vsnprintf(buf, len + 1, p_format, p_list);
+			vsnprintf(buf, len + 1, p_format, list_copy);
 		}
+		va_end(list_copy);
 		file->store_buffer((uint8_t *)buf, len);
 		if (len >= static_buf_size) {
 			Memory::free_static(buf);