@ -111,6 +111,13 @@ void _err_print_index_error(const char *p_function, const char *p_file, int p_li
# define GENERATE_TRAP __builtin_trap();
# endif
// Used to strip debug messages in release mode
# ifdef DEBUG_ENABLED
# define DEBUG_STR(m_msg) m_msg
# else
# define DEBUG_STR(m_msg) ""
# endif
// (*): See https://stackoverflow.com/questions/257418/do-while-0-what-is-it-good-for
# define ERR_FAIL_INDEX(m_index, m_size) \
@ -124,7 +131,7 @@ void _err_print_index_error(const char *p_function, const char *p_file, int p_li
# define ERR_FAIL_INDEX_MSG(m_index, m_size, m_msg) \
do { \
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) ; \
_err_print_index_error ( FUNCTION_STR , __FILE__ , __LINE__ , m_index , m_size , _STR ( m_index ) , _STR ( m_size ) , DEBUG_STR( m_msg) ) ; \
return ; \
} \
} while ( 0 ) ; // (*)
@ -145,7 +152,7 @@ void _err_print_index_error(const char *p_function, const char *p_file, int p_li
# define ERR_FAIL_INDEX_V_MSG(m_index, m_size, m_retval, m_msg) \
do { \
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) ; \
_err_print_index_error ( FUNCTION_STR , __FILE__ , __LINE__ , m_index , m_size , _STR ( m_index ) , _STR ( m_size ) , DEBUG_STR( m_msg) ) ; \
return m_retval ; \
} \
} while ( 0 ) ; // (*)
@ -166,7 +173,7 @@ void _err_print_index_error(const char *p_function, const char *p_file, int p_li
# define ERR_FAIL_UNSIGNED_INDEX_V_MSG(m_index, m_size, m_retval, m_msg) \
do { \
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) ; \
_err_print_index_error ( FUNCTION_STR , __FILE__ , __LINE__ , m_index , m_size , _STR ( m_index ) , _STR ( m_size ) , DEBUG_STR( m_msg) ) ; \
return m_retval ; \
} \
} while ( 0 ) ; // (*)
@ -205,7 +212,7 @@ void _err_print_index_error(const char *p_function, const char *p_file, int p_li
# define ERR_FAIL_NULL_MSG(m_param, m_msg) \
{ \
if ( unlikely ( ! m_param ) ) { \
_err_print_error ( FUNCTION_STR , __FILE__ , __LINE__ , " Parameter ' " _STR ( m_param ) " ' is null. " , m_msg) ; \
_err_print_error ( FUNCTION_STR , __FILE__ , __LINE__ , " Parameter ' " _STR ( m_param ) " ' is null. " , DEBUG_STR( m_msg) ) ; \
return ; \
} \
}
@ -221,7 +228,7 @@ void _err_print_index_error(const char *p_function, const char *p_file, int p_li
# define ERR_FAIL_NULL_V_MSG(m_param, m_retval, m_msg) \
{ \
if ( unlikely ( ! m_param ) ) { \
_err_print_error ( FUNCTION_STR , __FILE__ , __LINE__ , " Parameter ' " _STR ( m_param ) " ' is null. " , m_msg) ; \
_err_print_error ( FUNCTION_STR , __FILE__ , __LINE__ , " Parameter ' " _STR ( m_param ) " ' is null. " , DEBUG_STR( m_msg) ) ; \
return m_retval ; \
} \
}
@ -241,7 +248,7 @@ void _err_print_index_error(const char *p_function, const char *p_file, int p_li
# define ERR_FAIL_COND_MSG(m_cond, m_msg) \
{ \
if ( unlikely ( m_cond ) ) { \
_err_print_error ( FUNCTION_STR , __FILE__ , __LINE__ , " Condition ' " _STR ( m_cond ) " ' is true. " , m_msg) ; \
_err_print_error ( FUNCTION_STR , __FILE__ , __LINE__ , " Condition ' " _STR ( m_cond ) " ' is true. " , DEBUG_STR( m_msg) ) ; \
return ; \
} \
}
@ -260,7 +267,7 @@ void _err_print_index_error(const char *p_function, const char *p_file, int p_li
# define CRASH_COND_MSG(m_cond, m_msg) \
{ \
if ( unlikely ( m_cond ) ) { \
_err_print_error ( FUNCTION_STR , __FILE__ , __LINE__ , " FATAL: Condition ' " _STR ( m_cond ) " ' is true. " , m_msg) ; \
_err_print_error ( FUNCTION_STR , __FILE__ , __LINE__ , " FATAL: Condition ' " _STR ( m_cond ) " ' is true. " , DEBUG_STR( m_msg) ) ; \
GENERATE_TRAP \
} \
}
@ -282,7 +289,7 @@ void _err_print_index_error(const char *p_function, const char *p_file, int p_li
# define ERR_FAIL_COND_V_MSG(m_cond, m_retval, m_msg) \
{ \
if ( unlikely ( m_cond ) ) { \
_err_print_error ( FUNCTION_STR , __FILE__ , __LINE__ , " Condition ' " _STR ( m_cond ) " ' is true. returned: " _STR ( m_retval ) , m_msg) ; \
_err_print_error ( FUNCTION_STR , __FILE__ , __LINE__ , " Condition ' " _STR ( m_cond ) " ' is true. returned: " _STR ( m_retval ) , DEBUG_STR( m_msg) ) ; \
return m_retval ; \
} \
}
@ -302,7 +309,7 @@ void _err_print_index_error(const char *p_function, const char *p_file, int p_li
# define ERR_CONTINUE_MSG(m_cond, m_msg) \
{ \
if ( unlikely ( m_cond ) ) { \
_err_print_error ( FUNCTION_STR , __FILE__ , __LINE__ , " Condition ' " _STR ( m_cond ) " ' is true. Continuing..: " , m_msg) ; \
_err_print_error ( FUNCTION_STR , __FILE__ , __LINE__ , " Condition ' " _STR ( m_cond ) " ' is true. Continuing..: " , DEBUG_STR( m_msg) ) ; \
continue ; \
} \
}
@ -322,7 +329,7 @@ void _err_print_index_error(const char *p_function, const char *p_file, int p_li
# define ERR_BREAK_MSG(m_cond, m_msg) \
{ \
if ( unlikely ( m_cond ) ) { \
_err_print_error ( FUNCTION_STR , __FILE__ , __LINE__ , " Condition ' " _STR ( m_cond ) " ' is true. Breaking..: " , m_msg) ; \
_err_print_error ( FUNCTION_STR , __FILE__ , __LINE__ , " Condition ' " _STR ( m_cond ) " ' is true. Breaking..: " , DEBUG_STR( m_msg) ) ; \
break ; \
} \
}
@ -338,7 +345,7 @@ void _err_print_index_error(const char *p_function, const char *p_file, int p_li
# define ERR_FAIL_MSG(m_msg) \
{ \
_err_print_error ( FUNCTION_STR , __FILE__ , __LINE__ , " Method/Function Failed. " , m_msg) ; \
_err_print_error ( FUNCTION_STR , __FILE__ , __LINE__ , " Method/Function Failed. " , DEBUG_STR( m_msg) ) ; \
return ; \
}
@ -353,7 +360,7 @@ void _err_print_index_error(const char *p_function, const char *p_file, int p_li
# define ERR_FAIL_V_MSG(m_value, m_msg) \
{ \
_err_print_error ( FUNCTION_STR , __FILE__ , __LINE__ , " Method/Function Failed, returning: " __STR ( m_value ) , m_msg) ; \
_err_print_error ( FUNCTION_STR , __FILE__ , __LINE__ , " Method/Function Failed, returning: " __STR ( m_value ) , DEBUG_STR( m_msg) ) ; \
return m_value ; \
}
@ -368,7 +375,7 @@ void _err_print_index_error(const char *p_function, const char *p_file, int p_li
# define CRASH_NOW_MSG(m_msg) \
{ \
_err_print_error ( FUNCTION_STR , __FILE__ , __LINE__ , " FATAL: Method/Function Failed. " , m_msg) ; \
_err_print_error ( FUNCTION_STR , __FILE__ , __LINE__ , " FATAL: Method/Function Failed. " , DEBUG_STR( m_msg) ) ; \
GENERATE_TRAP \
}