You've already forked godot
mirror of
https://github.com/godotengine/godot.git
synced 2025-11-07 12:30:27 +00:00
Add fflush to error macros
CRASH_NOW and DEV_ASSERT macros would previously terminate before outputting any error messages.
This PR ensures calling fflush for stdout before terminating.
(cherry picked from commit ee979d321a)
This commit is contained in:
committed by
Rémi Verschelde
parent
4ab57389a5
commit
718132b694
@@ -107,3 +107,7 @@ void _err_print_index_error(const char *p_function, const char *p_file, int p_li
|
|||||||
void _err_print_index_error(const char *p_function, const char *p_file, int p_line, int64_t p_index, int64_t p_size, const char *p_index_str, const char *p_size_str, const String &p_message, bool fatal) {
|
void _err_print_index_error(const char *p_function, const char *p_file, int p_line, int64_t p_index, int64_t p_size, const char *p_index_str, const char *p_size_str, const String &p_message, bool fatal) {
|
||||||
_err_print_index_error(p_function, p_file, p_line, p_index, p_size, p_index_str, p_size_str, p_message.utf8().get_data(), fatal);
|
_err_print_index_error(p_function, p_file, p_line, p_index, p_size, p_index_str, p_size_str, p_message.utf8().get_data(), fatal);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void _err_flush_stdout() {
|
||||||
|
fflush(stdout);
|
||||||
|
}
|
||||||
|
|||||||
@@ -84,6 +84,7 @@ void _err_print_error(const char *p_function, const char *p_file, int p_line, co
|
|||||||
void _err_print_error(const char *p_function, const char *p_file, int p_line, const String &p_error, const String &p_message, ErrorHandlerType p_type = ERR_HANDLER_ERROR);
|
void _err_print_error(const char *p_function, const char *p_file, int p_line, const String &p_error, const String &p_message, ErrorHandlerType p_type = ERR_HANDLER_ERROR);
|
||||||
void _err_print_index_error(const char *p_function, const char *p_file, int p_line, int64_t p_index, int64_t p_size, const char *p_index_str, const char *p_size_str, const char *p_message = "", bool fatal = false);
|
void _err_print_index_error(const char *p_function, const char *p_file, int p_line, int64_t p_index, int64_t p_size, const char *p_index_str, const char *p_size_str, const char *p_message = "", bool fatal = false);
|
||||||
void _err_print_index_error(const char *p_function, const char *p_file, int p_line, int64_t p_index, int64_t p_size, const char *p_index_str, const char *p_size_str, const String &p_message, bool fatal = false);
|
void _err_print_index_error(const char *p_function, const char *p_file, int p_line, int64_t p_index, int64_t p_size, const char *p_index_str, const char *p_size_str, const String &p_message, bool fatal = false);
|
||||||
|
void _err_flush_stdout();
|
||||||
|
|
||||||
#ifndef _STR
|
#ifndef _STR
|
||||||
#define _STR(m_x) #m_x
|
#define _STR(m_x) #m_x
|
||||||
@@ -426,6 +427,7 @@ void _err_print_index_error(const char *p_function, const char *p_file, int p_li
|
|||||||
#define CRASH_NOW() \
|
#define CRASH_NOW() \
|
||||||
if (true) { \
|
if (true) { \
|
||||||
_err_print_error(FUNCTION_STR, __FILE__, __LINE__, "FATAL: Method failed."); \
|
_err_print_error(FUNCTION_STR, __FILE__, __LINE__, "FATAL: Method failed."); \
|
||||||
|
void _err_flush_stdout(); \
|
||||||
GENERATE_TRAP \
|
GENERATE_TRAP \
|
||||||
} else \
|
} else \
|
||||||
((void)0)
|
((void)0)
|
||||||
@@ -437,6 +439,7 @@ void _err_print_index_error(const char *p_function, const char *p_file, int p_li
|
|||||||
#define CRASH_NOW_MSG(m_msg) \
|
#define CRASH_NOW_MSG(m_msg) \
|
||||||
if (true) { \
|
if (true) { \
|
||||||
_err_print_error(FUNCTION_STR, __FILE__, __LINE__, "FATAL: Method failed.", m_msg); \
|
_err_print_error(FUNCTION_STR, __FILE__, __LINE__, "FATAL: Method failed.", m_msg); \
|
||||||
|
void _err_flush_stdout(); \
|
||||||
GENERATE_TRAP \
|
GENERATE_TRAP \
|
||||||
} else \
|
} else \
|
||||||
((void)0)
|
((void)0)
|
||||||
@@ -520,6 +523,7 @@ void _err_print_index_error(const char *p_function, const char *p_file, int p_li
|
|||||||
#define DEV_ASSERT(m_cond) \
|
#define DEV_ASSERT(m_cond) \
|
||||||
if (unlikely(!(m_cond))) { \
|
if (unlikely(!(m_cond))) { \
|
||||||
_err_print_error(FUNCTION_STR, __FILE__, __LINE__, "FATAL: DEV_ASSERT failed \"" _STR(m_cond) "\" is false."); \
|
_err_print_error(FUNCTION_STR, __FILE__, __LINE__, "FATAL: DEV_ASSERT failed \"" _STR(m_cond) "\" is false."); \
|
||||||
|
void _err_flush_stdout(); \
|
||||||
GENERATE_TRAP \
|
GENERATE_TRAP \
|
||||||
} else \
|
} else \
|
||||||
((void)0)
|
((void)0)
|
||||||
|
|||||||
Reference in New Issue
Block a user