diff options
Diffstat (limited to 'core/error_macros.cpp')
-rw-r--r-- | core/error_macros.cpp | 35 |
1 files changed, 33 insertions, 2 deletions
diff --git a/core/error_macros.cpp b/core/error_macros.cpp index eda6b9cbbb..71517a47ec 100644 --- a/core/error_macros.cpp +++ b/core/error_macros.cpp @@ -109,9 +109,40 @@ void _err_print_error(const char *p_function, const char *p_file, int p_line, co _err_print_error(p_function, p_file, p_line, p_error.utf8().get_data(), p_type); } -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, bool fatal) { +void _err_print_error(const char *p_function, const char *p_file, int p_line, const char *p_error, const char *p_message, ErrorHandlerType p_type) { + + OS::get_singleton()->print_error(p_function, p_file, p_line, p_error, p_message, (Logger::ErrorType)p_type); + + _global_lock(); + ErrorHandlerList *l = error_handler_list; + while (l) { + + l->errfunc(l->userdata, p_function, p_file, p_line, p_error, p_message, p_type); + l = l->next; + } + + _global_unlock(); +} + +void _err_print_error(const char *p_function, const char *p_file, int p_line, const String &p_error, const char *p_message, ErrorHandlerType p_type) { + _err_print_error(p_function, p_file, p_line, p_error.utf8().get_data(), p_message, p_type); +} + +void _err_print_error(const char *p_function, const char *p_file, int p_line, const char *p_error, const String &p_message, ErrorHandlerType p_type) { + _err_print_error(p_function, p_file, p_line, p_error, p_message.utf8().get_data(), p_type); +} + +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_print_error(p_function, p_file, p_line, p_error.utf8().get_data(), p_message.utf8().get_data(), p_type); +} + +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) { String fstr(fatal ? "FATAL: " : ""); String err(fstr + "Index " + p_index_str + "=" + itos(p_index) + " out of size (" + p_size_str + "=" + itos(p_size) + ")"); - _err_print_error(p_function, p_file, p_line, err.utf8().get_data()); + _err_print_error(p_function, p_file, p_line, err.utf8().get_data(), p_message); +} + +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); } |