Fix incorrect index error macros
This commit is contained in:
parent
cd031fd31a
commit
22c1785826
|
@ -118,11 +118,11 @@ void _err_print_error(const char *p_function, const char *p_file, int p_line, co
|
||||||
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 p_editor_notify, bool p_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 char *p_message, bool p_editor_notify, bool p_fatal) {
|
||||||
String fstr(p_fatal ? "FATAL: " : "");
|
String fstr(p_fatal ? "FATAL: " : "");
|
||||||
String err(fstr + "Index " + p_index_str + " = " + itos(p_index) + " is out of bounds (" + p_size_str + " = " + itos(p_size) + ").");
|
String err(fstr + "Index " + p_index_str + " = " + itos(p_index) + " is out of bounds (" + p_size_str + " = " + itos(p_size) + ").");
|
||||||
_err_print_error(p_function, p_file, p_line, err.utf8().get_data(), p_message);
|
_err_print_error(p_function, p_file, p_line, err.utf8().get_data(), p_message, p_editor_notify, 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 String &p_message, bool p_editor_notify, bool p_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 p_editor_notify, bool p_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(), p_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(), p_editor_notify, p_fatal);
|
||||||
}
|
}
|
||||||
|
|
||||||
void _err_flush_stdout() {
|
void _err_flush_stdout() {
|
||||||
|
|
|
@ -189,12 +189,12 @@ void _err_flush_stdout();
|
||||||
* Ensures an integer index `m_index` is less than `m_size` and greater than or equal to 0.
|
* Ensures an integer index `m_index` is less than `m_size` and greater than or equal to 0.
|
||||||
* If not, the application crashes.
|
* If not, the application crashes.
|
||||||
*/
|
*/
|
||||||
#define CRASH_BAD_INDEX(m_index, m_size) \
|
#define CRASH_BAD_INDEX(m_index, m_size) \
|
||||||
if (unlikely((m_index) < 0 || (m_index) >= (m_size))) { \
|
if (unlikely((m_index) < 0 || (m_index) >= (m_size))) { \
|
||||||
_err_print_index_error(FUNCTION_STR, __FILE__, __LINE__, m_index, m_size, _STR(m_index), _STR(m_size), "", true); \
|
_err_print_index_error(FUNCTION_STR, __FILE__, __LINE__, m_index, m_size, _STR(m_index), _STR(m_size), "", false, true); \
|
||||||
_err_flush_stdout(); \
|
_err_flush_stdout(); \
|
||||||
GENERATE_TRAP(); \
|
GENERATE_TRAP(); \
|
||||||
} else \
|
} else \
|
||||||
((void)0)
|
((void)0)
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -204,12 +204,12 @@ void _err_flush_stdout();
|
||||||
* Ensures an integer index `m_index` is less than `m_size` and greater than or equal to 0.
|
* Ensures an integer index `m_index` is less than `m_size` and greater than or equal to 0.
|
||||||
* If not, prints `m_msg` and the application crashes.
|
* If not, prints `m_msg` and the application crashes.
|
||||||
*/
|
*/
|
||||||
#define CRASH_BAD_INDEX_MSG(m_index, m_size, m_msg) \
|
#define CRASH_BAD_INDEX_MSG(m_index, m_size, m_msg) \
|
||||||
if (unlikely((m_index) < 0 || (m_index) >= (m_size))) { \
|
if (unlikely((m_index) < 0 || (m_index) >= (m_size))) { \
|
||||||
_err_print_index_error(FUNCTION_STR, __FILE__, __LINE__, m_index, m_size, _STR(m_index), _STR(m_size), m_msg, true); \
|
_err_print_index_error(FUNCTION_STR, __FILE__, __LINE__, m_index, m_size, _STR(m_index), _STR(m_size), m_msg, false, true); \
|
||||||
_err_flush_stdout(); \
|
_err_flush_stdout(); \
|
||||||
GENERATE_TRAP(); \
|
GENERATE_TRAP(); \
|
||||||
} else \
|
} else \
|
||||||
((void)0)
|
((void)0)
|
||||||
|
|
||||||
// Unsigned integer index out of bounds error macros.
|
// Unsigned integer index out of bounds error macros.
|
||||||
|
@ -292,12 +292,12 @@ void _err_flush_stdout();
|
||||||
* Ensures an unsigned integer index `m_index` is less than `m_size`.
|
* Ensures an unsigned integer index `m_index` is less than `m_size`.
|
||||||
* If not, the application crashes.
|
* If not, the application crashes.
|
||||||
*/
|
*/
|
||||||
#define CRASH_BAD_UNSIGNED_INDEX(m_index, m_size) \
|
#define CRASH_BAD_UNSIGNED_INDEX(m_index, m_size) \
|
||||||
if (unlikely((m_index) >= (m_size))) { \
|
if (unlikely((m_index) >= (m_size))) { \
|
||||||
_err_print_index_error(FUNCTION_STR, __FILE__, __LINE__, m_index, m_size, _STR(m_index), _STR(m_size), "", true); \
|
_err_print_index_error(FUNCTION_STR, __FILE__, __LINE__, m_index, m_size, _STR(m_index), _STR(m_size), "", false, true); \
|
||||||
_err_flush_stdout(); \
|
_err_flush_stdout(); \
|
||||||
GENERATE_TRAP(); \
|
GENERATE_TRAP(); \
|
||||||
} else \
|
} else \
|
||||||
((void)0)
|
((void)0)
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -307,12 +307,12 @@ void _err_flush_stdout();
|
||||||
* Ensures an unsigned integer index `m_index` is less than `m_size`.
|
* Ensures an unsigned integer index `m_index` is less than `m_size`.
|
||||||
* If not, prints `m_msg` and the application crashes.
|
* If not, prints `m_msg` and the application crashes.
|
||||||
*/
|
*/
|
||||||
#define CRASH_BAD_UNSIGNED_INDEX_MSG(m_index, m_size, m_msg) \
|
#define CRASH_BAD_UNSIGNED_INDEX_MSG(m_index, m_size, m_msg) \
|
||||||
if (unlikely((m_index) >= (m_size))) { \
|
if (unlikely((m_index) >= (m_size))) { \
|
||||||
_err_print_index_error(FUNCTION_STR, __FILE__, __LINE__, m_index, m_size, _STR(m_index), _STR(m_size), m_msg, true); \
|
_err_print_index_error(FUNCTION_STR, __FILE__, __LINE__, m_index, m_size, _STR(m_index), _STR(m_size), m_msg, false, true); \
|
||||||
_err_flush_stdout(); \
|
_err_flush_stdout(); \
|
||||||
GENERATE_TRAP(); \
|
GENERATE_TRAP(); \
|
||||||
} else \
|
} else \
|
||||||
((void)0)
|
((void)0)
|
||||||
|
|
||||||
// Null reference error macros.
|
// Null reference error macros.
|
||||||
|
|
Loading…
Reference in New Issue