Ensure GDCLASS can be used outside the godot namespace.
The `GDCLASS` macro should not assume to be called inside the `godot` namespace and should thus prefix function calls for that namespace with `::godot::` to ensure proper namespace referencing.pull/823/head
parent
1863bd88ad
commit
bcf27d8af4
|
@ -117,32 +117,32 @@ protected:
|
||||||
return &m_class::_bind_methods; \
|
return &m_class::_bind_methods; \
|
||||||
} \
|
} \
|
||||||
\
|
\
|
||||||
static void (Wrapped::*_get_notification())(int) { \
|
static void (::godot::Wrapped::*_get_notification())(int) { \
|
||||||
return (void(Wrapped::*)(int)) & m_class::_notification; \
|
return (void(::godot::Wrapped::*)(int)) & m_class::_notification; \
|
||||||
} \
|
} \
|
||||||
\
|
\
|
||||||
static bool (Wrapped::*_get_set())(const StringName &p_name, const Variant &p_property) { \
|
static bool (::godot::Wrapped::*_get_set())(const ::godot::StringName &p_name, const ::godot::Variant &p_property) { \
|
||||||
return (bool(Wrapped::*)(const StringName &p_name, const Variant &p_property)) & m_class::_set; \
|
return (bool(::godot::Wrapped::*)(const ::godot::StringName &p_name, const ::godot::Variant &p_property)) & m_class::_set; \
|
||||||
} \
|
} \
|
||||||
\
|
\
|
||||||
static bool (Wrapped::*_get_get())(const StringName &p_name, Variant &r_ret) { \
|
static bool (::godot::Wrapped::*_get_get())(const ::godot::StringName &p_name, ::godot::Variant &r_ret) { \
|
||||||
return (bool(Wrapped::*)(const StringName &p_name, Variant &r_ret)) & m_class::_set; \
|
return (bool(::godot::Wrapped::*)(const ::godot::StringName &p_name, ::godot::Variant &r_ret)) & m_class::_set; \
|
||||||
} \
|
} \
|
||||||
\
|
\
|
||||||
static void (Wrapped::*_get_get_property_list())(List<PropertyInfo> * p_list) { \
|
static void (::godot::Wrapped::*_get_get_property_list())(::godot::List<::godot::PropertyInfo> * p_list) { \
|
||||||
return (void(Wrapped::*)(List<PropertyInfo> * p_list)) & m_class::_get_property_list; \
|
return (void(::godot::Wrapped::*)(::godot::List<::godot::PropertyInfo> * p_list)) & m_class::_get_property_list; \
|
||||||
} \
|
} \
|
||||||
\
|
\
|
||||||
static bool (Wrapped::*_get_property_can_revert())(const StringName &p_name) { \
|
static bool (::godot::Wrapped::*_get_property_can_revert())(const ::godot::StringName &p_name) { \
|
||||||
return (bool(Wrapped::*)(const StringName &p_name)) & m_class::_property_can_revert; \
|
return (bool(::godot::Wrapped::*)(const ::godot::StringName &p_name)) & m_class::_property_can_revert; \
|
||||||
} \
|
} \
|
||||||
\
|
\
|
||||||
static bool (Wrapped::*_get_property_get_revert())(const StringName &p_name, Variant &) { \
|
static bool (::godot::Wrapped::*_get_property_get_revert())(const ::godot::StringName &p_name, ::godot::Variant &) { \
|
||||||
return (bool(Wrapped::*)(const StringName &p_name, Variant &)) & m_class::_property_get_revert; \
|
return (bool(::godot::Wrapped::*)(const ::godot::StringName &p_name, ::godot::Variant &)) & m_class::_property_get_revert; \
|
||||||
} \
|
} \
|
||||||
\
|
\
|
||||||
static String (Wrapped::*_get_to_string())() { \
|
static ::godot::String (::godot::Wrapped::*_get_to_string())() { \
|
||||||
return (String(Wrapped::*)()) & m_class::_to_string; \
|
return (::godot::String(::godot::Wrapped::*)()) & m_class::_to_string; \
|
||||||
} \
|
} \
|
||||||
\
|
\
|
||||||
template <class T> \
|
template <class T> \
|
||||||
|
@ -191,7 +191,7 @@ public:
|
||||||
if (p_instance && m_class::_get_set()) { \
|
if (p_instance && m_class::_get_set()) { \
|
||||||
if (m_class::_get_set() != m_inherits::_get_set()) { \
|
if (m_class::_get_set() != m_inherits::_get_set()) { \
|
||||||
m_class *cls = reinterpret_cast<m_class *>(p_instance); \
|
m_class *cls = reinterpret_cast<m_class *>(p_instance); \
|
||||||
return cls->_set(*reinterpret_cast<const StringName *>(p_name), *reinterpret_cast<const Variant *>(p_value)); \
|
return cls->_set(*reinterpret_cast<const ::godot::StringName *>(p_name), *reinterpret_cast<const ::godot::Variant *>(p_value)); \
|
||||||
} \
|
} \
|
||||||
return m_inherits::set_bind(p_instance, p_name, p_value); \
|
return m_inherits::set_bind(p_instance, p_name, p_value); \
|
||||||
} \
|
} \
|
||||||
|
@ -202,7 +202,7 @@ public:
|
||||||
if (p_instance && m_class::_get_get()) { \
|
if (p_instance && m_class::_get_get()) { \
|
||||||
if (m_class::_get_get() != m_inherits::_get_get()) { \
|
if (m_class::_get_get() != m_inherits::_get_get()) { \
|
||||||
m_class *cls = reinterpret_cast<m_class *>(p_instance); \
|
m_class *cls = reinterpret_cast<m_class *>(p_instance); \
|
||||||
return cls->_get(*reinterpret_cast<const StringName *>(p_name), *reinterpret_cast<Variant *>(r_ret)); \
|
return cls->_get(*reinterpret_cast<const ::godot::StringName *>(p_name), *reinterpret_cast<::godot::Variant *>(r_ret)); \
|
||||||
} \
|
} \
|
||||||
return m_inherits::get_bind(p_instance, p_name, r_ret); \
|
return m_inherits::get_bind(p_instance, p_name, r_ret); \
|
||||||
} \
|
} \
|
||||||
|
@ -213,12 +213,12 @@ public:
|
||||||
if (p_instance && m_class::_get_get_property_list()) { \
|
if (p_instance && m_class::_get_get_property_list()) { \
|
||||||
if (m_class::_get_get_property_list() != m_inherits::_get_get_property_list()) { \
|
if (m_class::_get_get_property_list() != m_inherits::_get_get_property_list()) { \
|
||||||
m_class *cls = reinterpret_cast<m_class *>(p_instance); \
|
m_class *cls = reinterpret_cast<m_class *>(p_instance); \
|
||||||
List<PropertyInfo> list; \
|
::godot::List<::godot::PropertyInfo> list; \
|
||||||
cls->_get_property_list(&list); \
|
cls->_get_property_list(&list); \
|
||||||
ERR_FAIL_COND_V_MSG(cls->plist != nullptr || cls->plist_size != 0, nullptr, "Internal error, property list was not freed by engine!"); \
|
ERR_FAIL_COND_V_MSG(cls->plist != nullptr || cls->plist_size != 0, nullptr, "Internal error, property list was not freed by engine!"); \
|
||||||
cls->plist = reinterpret_cast<GDNativePropertyInfo *>(memalloc(sizeof(GDNativePropertyInfo) * list.size())); \
|
cls->plist = reinterpret_cast<GDNativePropertyInfo *>(memalloc(sizeof(GDNativePropertyInfo) * list.size())); \
|
||||||
cls->plist_size = 0; \
|
cls->plist_size = 0; \
|
||||||
for (const PropertyInfo &E : list) { \
|
for (const ::godot::PropertyInfo &E : list) { \
|
||||||
cls->plist[cls->plist_size].type = E.type; \
|
cls->plist[cls->plist_size].type = E.type; \
|
||||||
cls->plist[cls->plist_size].name = _alloc_and_copy_cstr(E.name); \
|
cls->plist[cls->plist_size].name = _alloc_and_copy_cstr(E.name); \
|
||||||
cls->plist[cls->plist_size].hint = E.hint; \
|
cls->plist[cls->plist_size].hint = E.hint; \
|
||||||
|
@ -255,7 +255,7 @@ public:
|
||||||
if (p_instance && m_class::_get_property_can_revert()) { \
|
if (p_instance && m_class::_get_property_can_revert()) { \
|
||||||
if (m_class::_get_property_can_revert() != m_inherits::_get_property_can_revert()) { \
|
if (m_class::_get_property_can_revert() != m_inherits::_get_property_can_revert()) { \
|
||||||
m_class *cls = reinterpret_cast<m_class *>(p_instance); \
|
m_class *cls = reinterpret_cast<m_class *>(p_instance); \
|
||||||
return cls->_property_can_revert(*reinterpret_cast<const StringName *>(p_name)); \
|
return cls->_property_can_revert(*reinterpret_cast<const ::godot::StringName *>(p_name)); \
|
||||||
} \
|
} \
|
||||||
return m_inherits::property_can_revert_bind(p_instance, p_name); \
|
return m_inherits::property_can_revert_bind(p_instance, p_name); \
|
||||||
} \
|
} \
|
||||||
|
@ -266,7 +266,7 @@ public:
|
||||||
if (p_instance && m_class::_get_property_get_revert()) { \
|
if (p_instance && m_class::_get_property_get_revert()) { \
|
||||||
if (m_class::_get_property_get_revert() != m_inherits::_get_property_get_revert()) { \
|
if (m_class::_get_property_get_revert() != m_inherits::_get_property_get_revert()) { \
|
||||||
m_class *cls = reinterpret_cast<m_class *>(p_instance); \
|
m_class *cls = reinterpret_cast<m_class *>(p_instance); \
|
||||||
return cls->_property_get_revert(*reinterpret_cast<const StringName *>(p_name), *reinterpret_cast<Variant *>(r_ret)); \
|
return cls->_property_get_revert(*reinterpret_cast<const ::godot::StringName *>(p_name), *reinterpret_cast<::godot::Variant *>(r_ret)); \
|
||||||
} \
|
} \
|
||||||
return m_inherits::property_get_revert_bind(p_instance, p_name, r_ret); \
|
return m_inherits::property_get_revert_bind(p_instance, p_name, r_ret); \
|
||||||
} \
|
} \
|
||||||
|
@ -277,7 +277,7 @@ public:
|
||||||
if (p_instance && m_class::_get_to_string()) { \
|
if (p_instance && m_class::_get_to_string()) { \
|
||||||
if (m_class::_get_to_string() != m_inherits::_get_to_string()) { \
|
if (m_class::_get_to_string() != m_inherits::_get_to_string()) { \
|
||||||
m_class *cls = reinterpret_cast<m_class *>(p_instance); \
|
m_class *cls = reinterpret_cast<m_class *>(p_instance); \
|
||||||
*reinterpret_cast<String *>(r_out) = cls->_to_string(); \
|
*reinterpret_cast<::godot::String *>(r_out) = cls->_to_string(); \
|
||||||
return; \
|
return; \
|
||||||
} \
|
} \
|
||||||
m_inherits::to_string_bind(p_instance, r_out); \
|
m_inherits::to_string_bind(p_instance, r_out); \
|
||||||
|
|
|
@ -47,6 +47,8 @@ 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 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);
|
||||||
|
|
||||||
|
} // namespace godot
|
||||||
|
|
||||||
// Used to strip debug messages in release mode
|
// Used to strip debug messages in release mode
|
||||||
#ifdef DEBUG_ENABLED
|
#ifdef DEBUG_ENABLED
|
||||||
#define DEBUG_STR(m_msg) m_msg
|
#define DEBUG_STR(m_msg) m_msg
|
||||||
|
@ -75,7 +77,7 @@ void _err_print_index_error(const char *p_function, const char *p_file, int p_li
|
||||||
|
|
||||||
#define ERR_FAIL_INDEX(m_index, m_size) \
|
#define ERR_FAIL_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)); \
|
::godot::_err_print_index_error(FUNCTION_STR, __FILE__, __LINE__, m_index, m_size, _STR(m_index), _STR(m_size)); \
|
||||||
return; \
|
return; \
|
||||||
} else \
|
} else \
|
||||||
((void)0)
|
((void)0)
|
||||||
|
@ -86,7 +88,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) \
|
#define ERR_FAIL_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), DEBUG_STR(m_msg)); \
|
::godot::_err_print_index_error(FUNCTION_STR, __FILE__, __LINE__, m_index, m_size, _STR(m_index), _STR(m_size), DEBUG_STR(m_msg)); \
|
||||||
return; \
|
return; \
|
||||||
} else \
|
} else \
|
||||||
((void)0)
|
((void)0)
|
||||||
|
@ -100,7 +102,7 @@ void _err_print_index_error(const char *p_function, const char *p_file, int p_li
|
||||||
*/
|
*/
|
||||||
#define ERR_FAIL_INDEX_V(m_index, m_size, m_retval) \
|
#define ERR_FAIL_INDEX_V(m_index, m_size, m_retval) \
|
||||||
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)); \
|
::godot::_err_print_index_error(FUNCTION_STR, __FILE__, __LINE__, m_index, m_size, _STR(m_index), _STR(m_size)); \
|
||||||
return m_retval; \
|
return m_retval; \
|
||||||
} else \
|
} else \
|
||||||
((void)0)
|
((void)0)
|
||||||
|
@ -111,7 +113,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) \
|
#define ERR_FAIL_INDEX_V_MSG(m_index, m_size, m_retval, 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), DEBUG_STR(m_msg)); \
|
::godot::_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; \
|
return m_retval; \
|
||||||
} else \
|
} else \
|
||||||
((void)0)
|
((void)0)
|
||||||
|
@ -126,7 +128,7 @@ void _err_print_index_error(const char *p_function, const char *p_file, int p_li
|
||||||
*/
|
*/
|
||||||
#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); \
|
::godot::_err_print_index_error(FUNCTION_STR, __FILE__, __LINE__, m_index, m_size, _STR(m_index), _STR(m_size), "", true); \
|
||||||
GENERATE_TRAP(); \
|
GENERATE_TRAP(); \
|
||||||
} else \
|
} else \
|
||||||
((void)0)
|
((void)0)
|
||||||
|
@ -140,7 +142,7 @@ void _err_print_index_error(const char *p_function, const char *p_file, int p_li
|
||||||
*/
|
*/
|
||||||
#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), DEBUG_STR(m_msg), true); \
|
::godot::_err_print_index_error(FUNCTION_STR, __FILE__, __LINE__, m_index, m_size, _STR(m_index), _STR(m_size), DEBUG_STR(m_msg), true); \
|
||||||
GENERATE_TRAP(); \
|
GENERATE_TRAP(); \
|
||||||
} else \
|
} else \
|
||||||
((void)0)
|
((void)0)
|
||||||
|
@ -156,7 +158,7 @@ void _err_print_index_error(const char *p_function, const char *p_file, int p_li
|
||||||
*/
|
*/
|
||||||
#define ERR_FAIL_UNSIGNED_INDEX(m_index, m_size) \
|
#define ERR_FAIL_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)); \
|
::godot::_err_print_index_error(FUNCTION_STR, __FILE__, __LINE__, m_index, m_size, _STR(m_index), _STR(m_size)); \
|
||||||
return; \
|
return; \
|
||||||
} else \
|
} else \
|
||||||
((void)0)
|
((void)0)
|
||||||
|
@ -167,7 +169,7 @@ void _err_print_index_error(const char *p_function, const char *p_file, int p_li
|
||||||
*/
|
*/
|
||||||
#define ERR_FAIL_UNSIGNED_INDEX_MSG(m_index, m_size, m_msg) \
|
#define ERR_FAIL_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), DEBUG_STR(m_msg)); \
|
::godot::_err_print_index_error(FUNCTION_STR, __FILE__, __LINE__, m_index, m_size, _STR(m_index), _STR(m_size), DEBUG_STR(m_msg)); \
|
||||||
return; \
|
return; \
|
||||||
} else \
|
} else \
|
||||||
((void)0)
|
((void)0)
|
||||||
|
@ -181,7 +183,7 @@ void _err_print_index_error(const char *p_function, const char *p_file, int p_li
|
||||||
*/
|
*/
|
||||||
#define ERR_FAIL_UNSIGNED_INDEX_V(m_index, m_size, m_retval) \
|
#define ERR_FAIL_UNSIGNED_INDEX_V(m_index, m_size, m_retval) \
|
||||||
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)); \
|
::godot::_err_print_index_error(FUNCTION_STR, __FILE__, __LINE__, m_index, m_size, _STR(m_index), _STR(m_size)); \
|
||||||
return m_retval; \
|
return m_retval; \
|
||||||
} else \
|
} else \
|
||||||
((void)0)
|
((void)0)
|
||||||
|
@ -192,7 +194,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) \
|
#define ERR_FAIL_UNSIGNED_INDEX_V_MSG(m_index, m_size, m_retval, 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), DEBUG_STR(m_msg)); \
|
::godot::_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; \
|
return m_retval; \
|
||||||
} else \
|
} else \
|
||||||
((void)0)
|
((void)0)
|
||||||
|
@ -207,7 +209,7 @@ void _err_print_index_error(const char *p_function, const char *p_file, int p_li
|
||||||
*/
|
*/
|
||||||
#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); \
|
::godot::_err_print_index_error(FUNCTION_STR, __FILE__, __LINE__, m_index, m_size, _STR(m_index), _STR(m_size), "", true); \
|
||||||
GENERATE_TRAP(); \
|
GENERATE_TRAP(); \
|
||||||
} else \
|
} else \
|
||||||
((void)0)
|
((void)0)
|
||||||
|
@ -221,7 +223,7 @@ void _err_print_index_error(const char *p_function, const char *p_file, int p_li
|
||||||
*/
|
*/
|
||||||
#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), DEBUG_STR(m_msg), true); \
|
::godot::_err_print_index_error(FUNCTION_STR, __FILE__, __LINE__, m_index, m_size, _STR(m_index), _STR(m_size), DEBUG_STR(m_msg), true); \
|
||||||
GENERATE_TRAP(); \
|
GENERATE_TRAP(); \
|
||||||
} else \
|
} else \
|
||||||
((void)0)
|
((void)0)
|
||||||
|
@ -237,7 +239,7 @@ void _err_print_index_error(const char *p_function, const char *p_file, int p_li
|
||||||
*/
|
*/
|
||||||
#define ERR_FAIL_NULL(m_param) \
|
#define ERR_FAIL_NULL(m_param) \
|
||||||
if (unlikely(m_param == nullptr)) { \
|
if (unlikely(m_param == nullptr)) { \
|
||||||
_err_print_error(FUNCTION_STR, __FILE__, __LINE__, "Parameter \"" _STR(m_param) "\" is null."); \
|
::godot::_err_print_error(FUNCTION_STR, __FILE__, __LINE__, "Parameter \"" _STR(m_param) "\" is null."); \
|
||||||
return; \
|
return; \
|
||||||
} else \
|
} else \
|
||||||
((void)0)
|
((void)0)
|
||||||
|
@ -248,7 +250,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) \
|
#define ERR_FAIL_NULL_MSG(m_param, m_msg) \
|
||||||
if (unlikely(m_param == nullptr)) { \
|
if (unlikely(m_param == nullptr)) { \
|
||||||
_err_print_error(FUNCTION_STR, __FILE__, __LINE__, "Parameter \"" _STR(m_param) "\" is null.", DEBUG_STR(m_msg)); \
|
::godot::_err_print_error(FUNCTION_STR, __FILE__, __LINE__, "Parameter \"" _STR(m_param) "\" is null.", DEBUG_STR(m_msg)); \
|
||||||
return; \
|
return; \
|
||||||
} else \
|
} else \
|
||||||
((void)0)
|
((void)0)
|
||||||
|
@ -262,7 +264,7 @@ void _err_print_index_error(const char *p_function, const char *p_file, int p_li
|
||||||
*/
|
*/
|
||||||
#define ERR_FAIL_NULL_V(m_param, m_retval) \
|
#define ERR_FAIL_NULL_V(m_param, m_retval) \
|
||||||
if (unlikely(m_param == nullptr)) { \
|
if (unlikely(m_param == nullptr)) { \
|
||||||
_err_print_error(FUNCTION_STR, __FILE__, __LINE__, "Parameter \"" _STR(m_param) "\" is null."); \
|
::godot::_err_print_error(FUNCTION_STR, __FILE__, __LINE__, "Parameter \"" _STR(m_param) "\" is null."); \
|
||||||
return m_retval; \
|
return m_retval; \
|
||||||
} else \
|
} else \
|
||||||
((void)0)
|
((void)0)
|
||||||
|
@ -273,7 +275,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) \
|
#define ERR_FAIL_NULL_V_MSG(m_param, m_retval, m_msg) \
|
||||||
if (unlikely(m_param == nullptr)) { \
|
if (unlikely(m_param == nullptr)) { \
|
||||||
_err_print_error(FUNCTION_STR, __FILE__, __LINE__, "Parameter \"" _STR(m_param) "\" is null.", DEBUG_STR(m_msg)); \
|
::godot::_err_print_error(FUNCTION_STR, __FILE__, __LINE__, "Parameter \"" _STR(m_param) "\" is null.", DEBUG_STR(m_msg)); \
|
||||||
return m_retval; \
|
return m_retval; \
|
||||||
} else \
|
} else \
|
||||||
((void)0)
|
((void)0)
|
||||||
|
@ -289,7 +291,7 @@ void _err_print_index_error(const char *p_function, const char *p_file, int p_li
|
||||||
*/
|
*/
|
||||||
#define ERR_FAIL_COND(m_cond) \
|
#define ERR_FAIL_COND(m_cond) \
|
||||||
if (unlikely(m_cond)) { \
|
if (unlikely(m_cond)) { \
|
||||||
_err_print_error(FUNCTION_STR, __FILE__, __LINE__, "Condition \"" _STR(m_cond) "\" is true."); \
|
::godot::_err_print_error(FUNCTION_STR, __FILE__, __LINE__, "Condition \"" _STR(m_cond) "\" is true."); \
|
||||||
return; \
|
return; \
|
||||||
} else \
|
} else \
|
||||||
((void)0)
|
((void)0)
|
||||||
|
@ -303,7 +305,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) \
|
#define ERR_FAIL_COND_MSG(m_cond, m_msg) \
|
||||||
if (unlikely(m_cond)) { \
|
if (unlikely(m_cond)) { \
|
||||||
_err_print_error(FUNCTION_STR, __FILE__, __LINE__, "Condition \"" _STR(m_cond) "\" is true.", DEBUG_STR(m_msg)); \
|
::godot::_err_print_error(FUNCTION_STR, __FILE__, __LINE__, "Condition \"" _STR(m_cond) "\" is true.", DEBUG_STR(m_msg)); \
|
||||||
return; \
|
return; \
|
||||||
} else \
|
} else \
|
||||||
((void)0)
|
((void)0)
|
||||||
|
@ -319,7 +321,7 @@ void _err_print_index_error(const char *p_function, const char *p_file, int p_li
|
||||||
*/
|
*/
|
||||||
#define ERR_FAIL_COND_V(m_cond, m_retval) \
|
#define ERR_FAIL_COND_V(m_cond, m_retval) \
|
||||||
if (unlikely(m_cond)) { \
|
if (unlikely(m_cond)) { \
|
||||||
_err_print_error(FUNCTION_STR, __FILE__, __LINE__, "Condition \"" _STR(m_cond) "\" is true. Returning: " _STR(m_retval)); \
|
::godot::_err_print_error(FUNCTION_STR, __FILE__, __LINE__, "Condition \"" _STR(m_cond) "\" is true. Returning: " _STR(m_retval)); \
|
||||||
return m_retval; \
|
return m_retval; \
|
||||||
} else \
|
} else \
|
||||||
((void)0)
|
((void)0)
|
||||||
|
@ -333,7 +335,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) \
|
#define ERR_FAIL_COND_V_MSG(m_cond, m_retval, m_msg) \
|
||||||
if (unlikely(m_cond)) { \
|
if (unlikely(m_cond)) { \
|
||||||
_err_print_error(FUNCTION_STR, __FILE__, __LINE__, "Condition \"" _STR(m_cond) "\" is true. Returning: " _STR(m_retval), DEBUG_STR(m_msg)); \
|
::godot::_err_print_error(FUNCTION_STR, __FILE__, __LINE__, "Condition \"" _STR(m_cond) "\" is true. Returning: " _STR(m_retval), DEBUG_STR(m_msg)); \
|
||||||
return m_retval; \
|
return m_retval; \
|
||||||
} else \
|
} else \
|
||||||
((void)0)
|
((void)0)
|
||||||
|
@ -347,7 +349,7 @@ void _err_print_index_error(const char *p_function, const char *p_file, int p_li
|
||||||
*/
|
*/
|
||||||
#define ERR_CONTINUE(m_cond) \
|
#define ERR_CONTINUE(m_cond) \
|
||||||
if (unlikely(m_cond)) { \
|
if (unlikely(m_cond)) { \
|
||||||
_err_print_error(FUNCTION_STR, __FILE__, __LINE__, "Condition \"" _STR(m_cond) "\" is true. Continuing."); \
|
::godot::_err_print_error(FUNCTION_STR, __FILE__, __LINE__, "Condition \"" _STR(m_cond) "\" is true. Continuing."); \
|
||||||
continue; \
|
continue; \
|
||||||
} else \
|
} else \
|
||||||
((void)0)
|
((void)0)
|
||||||
|
@ -358,7 +360,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) \
|
#define ERR_CONTINUE_MSG(m_cond, m_msg) \
|
||||||
if (unlikely(m_cond)) { \
|
if (unlikely(m_cond)) { \
|
||||||
_err_print_error(FUNCTION_STR, __FILE__, __LINE__, "Condition \"" _STR(m_cond) "\" is true. Continuing.", DEBUG_STR(m_msg)); \
|
::godot::_err_print_error(FUNCTION_STR, __FILE__, __LINE__, "Condition \"" _STR(m_cond) "\" is true. Continuing.", DEBUG_STR(m_msg)); \
|
||||||
continue; \
|
continue; \
|
||||||
} else \
|
} else \
|
||||||
((void)0)
|
((void)0)
|
||||||
|
@ -372,7 +374,7 @@ void _err_print_index_error(const char *p_function, const char *p_file, int p_li
|
||||||
*/
|
*/
|
||||||
#define ERR_BREAK(m_cond) \
|
#define ERR_BREAK(m_cond) \
|
||||||
if (unlikely(m_cond)) { \
|
if (unlikely(m_cond)) { \
|
||||||
_err_print_error(FUNCTION_STR, __FILE__, __LINE__, "Condition \"" _STR(m_cond) "\" is true. Breaking."); \
|
::godot::_err_print_error(FUNCTION_STR, __FILE__, __LINE__, "Condition \"" _STR(m_cond) "\" is true. Breaking."); \
|
||||||
break; \
|
break; \
|
||||||
} else \
|
} else \
|
||||||
((void)0)
|
((void)0)
|
||||||
|
@ -383,7 +385,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) \
|
#define ERR_BREAK_MSG(m_cond, m_msg) \
|
||||||
if (unlikely(m_cond)) { \
|
if (unlikely(m_cond)) { \
|
||||||
_err_print_error(FUNCTION_STR, __FILE__, __LINE__, "Condition \"" _STR(m_cond) "\" is true. Breaking.", DEBUG_STR(m_msg)); \
|
::godot::_err_print_error(FUNCTION_STR, __FILE__, __LINE__, "Condition \"" _STR(m_cond) "\" is true. Breaking.", DEBUG_STR(m_msg)); \
|
||||||
break; \
|
break; \
|
||||||
} else \
|
} else \
|
||||||
((void)0)
|
((void)0)
|
||||||
|
@ -398,7 +400,7 @@ void _err_print_index_error(const char *p_function, const char *p_file, int p_li
|
||||||
*/
|
*/
|
||||||
#define CRASH_COND(m_cond) \
|
#define CRASH_COND(m_cond) \
|
||||||
if (unlikely(m_cond)) { \
|
if (unlikely(m_cond)) { \
|
||||||
_err_print_error(FUNCTION_STR, __FILE__, __LINE__, "FATAL: Condition \"" _STR(m_cond) "\" is true."); \
|
::godot::_err_print_error(FUNCTION_STR, __FILE__, __LINE__, "FATAL: Condition \"" _STR(m_cond) "\" is true."); \
|
||||||
GENERATE_TRAP(); \
|
GENERATE_TRAP(); \
|
||||||
} else \
|
} else \
|
||||||
((void)0)
|
((void)0)
|
||||||
|
@ -412,7 +414,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) \
|
#define CRASH_COND_MSG(m_cond, m_msg) \
|
||||||
if (unlikely(m_cond)) { \
|
if (unlikely(m_cond)) { \
|
||||||
_err_print_error(FUNCTION_STR, __FILE__, __LINE__, "FATAL: Condition \"" _STR(m_cond) "\" is true.", DEBUG_STR(m_msg)); \
|
::godot::_err_print_error(FUNCTION_STR, __FILE__, __LINE__, "FATAL: Condition \"" _STR(m_cond) "\" is true.", DEBUG_STR(m_msg)); \
|
||||||
GENERATE_TRAP(); \
|
GENERATE_TRAP(); \
|
||||||
} else \
|
} else \
|
||||||
((void)0)
|
((void)0)
|
||||||
|
@ -428,7 +430,7 @@ void _err_print_index_error(const char *p_function, const char *p_file, int p_li
|
||||||
*/
|
*/
|
||||||
#define ERR_FAIL() \
|
#define ERR_FAIL() \
|
||||||
if (true) { \
|
if (true) { \
|
||||||
_err_print_error(FUNCTION_STR, __FILE__, __LINE__, "Method/function failed."); \
|
::godot::_err_print_error(FUNCTION_STR, __FILE__, __LINE__, "Method/function failed."); \
|
||||||
return; \
|
return; \
|
||||||
} else \
|
} else \
|
||||||
((void)0)
|
((void)0)
|
||||||
|
@ -441,7 +443,7 @@ void _err_print_index_error(const char *p_function, const char *p_file, int p_li
|
||||||
*/
|
*/
|
||||||
#define ERR_FAIL_MSG(m_msg) \
|
#define ERR_FAIL_MSG(m_msg) \
|
||||||
if (true) { \
|
if (true) { \
|
||||||
_err_print_error(FUNCTION_STR, __FILE__, __LINE__, "Method/function failed.", DEBUG_STR(m_msg)); \
|
::godot::_err_print_error(FUNCTION_STR, __FILE__, __LINE__, "Method/function failed.", DEBUG_STR(m_msg)); \
|
||||||
return; \
|
return; \
|
||||||
} else \
|
} else \
|
||||||
((void)0)
|
((void)0)
|
||||||
|
@ -455,7 +457,7 @@ void _err_print_index_error(const char *p_function, const char *p_file, int p_li
|
||||||
*/
|
*/
|
||||||
#define ERR_FAIL_V(m_retval) \
|
#define ERR_FAIL_V(m_retval) \
|
||||||
if (true) { \
|
if (true) { \
|
||||||
_err_print_error(FUNCTION_STR, __FILE__, __LINE__, "Method/function failed. Returning: " _STR(m_retval)); \
|
::godot::_err_print_error(FUNCTION_STR, __FILE__, __LINE__, "Method/function failed. Returning: " _STR(m_retval)); \
|
||||||
return m_retval; \
|
return m_retval; \
|
||||||
} else \
|
} else \
|
||||||
((void)0)
|
((void)0)
|
||||||
|
@ -468,7 +470,7 @@ void _err_print_index_error(const char *p_function, const char *p_file, int p_li
|
||||||
*/
|
*/
|
||||||
#define ERR_FAIL_V_MSG(m_retval, m_msg) \
|
#define ERR_FAIL_V_MSG(m_retval, m_msg) \
|
||||||
if (true) { \
|
if (true) { \
|
||||||
_err_print_error(FUNCTION_STR, __FILE__, __LINE__, "Method/function failed. Returning: " _STR(m_retval), DEBUG_STR(m_msg)); \
|
::godot::_err_print_error(FUNCTION_STR, __FILE__, __LINE__, "Method/function failed. Returning: " _STR(m_retval), DEBUG_STR(m_msg)); \
|
||||||
return m_retval; \
|
return m_retval; \
|
||||||
} else \
|
} else \
|
||||||
((void)0)
|
((void)0)
|
||||||
|
@ -481,7 +483,7 @@ void _err_print_index_error(const char *p_function, const char *p_file, int p_li
|
||||||
* Prints `m_msg`.
|
* Prints `m_msg`.
|
||||||
*/
|
*/
|
||||||
#define ERR_PRINT(m_msg) \
|
#define ERR_PRINT(m_msg) \
|
||||||
_err_print_error(FUNCTION_STR, __FILE__, __LINE__, m_msg)
|
::godot::_err_print_error(FUNCTION_STR, __FILE__, __LINE__, m_msg)
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Prints `m_msg` once during the application lifetime.
|
* Prints `m_msg` once during the application lifetime.
|
||||||
|
@ -490,7 +492,7 @@ void _err_print_index_error(const char *p_function, const char *p_file, int p_li
|
||||||
if (true) { \
|
if (true) { \
|
||||||
static bool first_print = true; \
|
static bool first_print = true; \
|
||||||
if (first_print) { \
|
if (first_print) { \
|
||||||
_err_print_error(FUNCTION_STR, __FILE__, __LINE__, m_msg); \
|
::godot::_err_print_error(FUNCTION_STR, __FILE__, __LINE__, m_msg); \
|
||||||
first_print = false; \
|
first_print = false; \
|
||||||
} \
|
} \
|
||||||
} else \
|
} else \
|
||||||
|
@ -504,7 +506,7 @@ void _err_print_index_error(const char *p_function, const char *p_file, int p_li
|
||||||
* If warning about deprecated usage, use `WARN_DEPRECATED` or `WARN_DEPRECATED_MSG` instead.
|
* If warning about deprecated usage, use `WARN_DEPRECATED` or `WARN_DEPRECATED_MSG` instead.
|
||||||
*/
|
*/
|
||||||
#define WARN_PRINT(m_msg) \
|
#define WARN_PRINT(m_msg) \
|
||||||
_err_print_error(FUNCTION_STR, __FILE__, __LINE__, m_msg, true)
|
::godot::_err_print_error(FUNCTION_STR, __FILE__, __LINE__, m_msg, true)
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Prints `m_msg` once during the application lifetime.
|
* Prints `m_msg` once during the application lifetime.
|
||||||
|
@ -515,7 +517,7 @@ void _err_print_index_error(const char *p_function, const char *p_file, int p_li
|
||||||
if (true) { \
|
if (true) { \
|
||||||
static bool first_print = true; \
|
static bool first_print = true; \
|
||||||
if (first_print) { \
|
if (first_print) { \
|
||||||
_err_print_error(FUNCTION_STR, __FILE__, __LINE__, m_msg, true); \
|
::godot::_err_print_error(FUNCTION_STR, __FILE__, __LINE__, m_msg, true); \
|
||||||
first_print = false; \
|
first_print = false; \
|
||||||
} \
|
} \
|
||||||
} else \
|
} else \
|
||||||
|
@ -530,7 +532,7 @@ void _err_print_index_error(const char *p_function, const char *p_file, int p_li
|
||||||
if (true) { \
|
if (true) { \
|
||||||
static SafeFlag warning_shown; \
|
static SafeFlag warning_shown; \
|
||||||
if (!warning_shown.is_set()) { \
|
if (!warning_shown.is_set()) { \
|
||||||
_err_print_error(FUNCTION_STR, __FILE__, __LINE__, "This method has been deprecated and will be removed in the future.", true); \
|
::godot::_err_print_error(FUNCTION_STR, __FILE__, __LINE__, "This method has been deprecated and will be removed in the future.", true); \
|
||||||
warning_shown.set(); \
|
warning_shown.set(); \
|
||||||
} \
|
} \
|
||||||
} else \
|
} else \
|
||||||
|
@ -543,7 +545,7 @@ void _err_print_index_error(const char *p_function, const char *p_file, int p_li
|
||||||
if (true) { \
|
if (true) { \
|
||||||
static SafeFlag warning_shown; \
|
static SafeFlag warning_shown; \
|
||||||
if (!warning_shown.is_set()) { \
|
if (!warning_shown.is_set()) { \
|
||||||
_err_print_error(FUNCTION_STR, __FILE__, __LINE__, "This method has been deprecated and will be removed in the future.", DEBUG_STR(m_msg), true); \
|
::godot::_err_print_error(FUNCTION_STR, __FILE__, __LINE__, "This method has been deprecated and will be removed in the future.", DEBUG_STR(m_msg), true); \
|
||||||
warning_shown.set(); \
|
warning_shown.set(); \
|
||||||
} \
|
} \
|
||||||
} else \
|
} else \
|
||||||
|
@ -557,7 +559,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/function failed."); \
|
::godot::_err_print_error(FUNCTION_STR, __FILE__, __LINE__, "FATAL: Method/function failed."); \
|
||||||
GENERATE_TRAP(); \
|
GENERATE_TRAP(); \
|
||||||
} else \
|
} else \
|
||||||
((void)0)
|
((void)0)
|
||||||
|
@ -569,13 +571,11 @@ 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/function failed.", DEBUG_STR(m_msg)); \
|
::godot::_err_print_error(FUNCTION_STR, __FILE__, __LINE__, "FATAL: Method/function failed.", DEBUG_STR(m_msg)); \
|
||||||
GENERATE_TRAP(); \
|
GENERATE_TRAP(); \
|
||||||
} else \
|
} else \
|
||||||
((void)0)
|
((void)0)
|
||||||
|
|
||||||
} // namespace godot
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* This should be a 'free' assert for program flow and should not be needed in any releases,
|
* This should be a 'free' assert for program flow and should not be needed in any releases,
|
||||||
* only used in dev builds.
|
* only used in dev builds.
|
||||||
|
@ -583,7 +583,7 @@ void _err_print_index_error(const char *p_function, const char *p_file, int p_li
|
||||||
#ifdef DEBUG_ENABLED
|
#ifdef DEBUG_ENABLED
|
||||||
#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."); \
|
::godot::_err_print_error(FUNCTION_STR, __FILE__, __LINE__, "FATAL: DEV_ASSERT failed \"" _STR(m_cond) "\" is false."); \
|
||||||
GENERATE_TRAP(); \
|
GENERATE_TRAP(); \
|
||||||
} else \
|
} else \
|
||||||
((void)0)
|
((void)0)
|
||||||
|
|
|
@ -77,14 +77,14 @@ _ALWAYS_INLINE_ T *_post_initialize(T *p_obj) {
|
||||||
return p_obj;
|
return p_obj;
|
||||||
}
|
}
|
||||||
|
|
||||||
#define memalloc(m_size) Memory::alloc_static(m_size)
|
#define memalloc(m_size) ::godot::Memory::alloc_static(m_size)
|
||||||
#define memrealloc(m_mem, m_size) Memory::realloc_static(m_mem, m_size)
|
#define memrealloc(m_mem, m_size) ::godot::Memory::realloc_static(m_mem, m_size)
|
||||||
#define memfree(m_mem) Memory::free_static(m_mem)
|
#define memfree(m_mem) ::godot::Memory::free_static(m_mem)
|
||||||
|
|
||||||
#define memnew(m_class) _post_initialize(new ("") m_class)
|
#define memnew(m_class) ::godot::_post_initialize(new ("") m_class)
|
||||||
|
|
||||||
#define memnew_allocator(m_class, m_allocator) _post_initialize(new (m_allocator::alloc) m_class)
|
#define memnew_allocator(m_class, m_allocator) ::godot::_post_initialize(new (m_allocator::alloc) m_class)
|
||||||
#define memnew_placement(m_placement, m_class) _post_initialize(new (m_placement, sizeof(m_class), "") m_class)
|
#define memnew_placement(m_placement, m_class) ::godot::_post_initialize(new (m_placement, sizeof(m_class), "") m_class)
|
||||||
|
|
||||||
// Generic comparator used in Map, List, etc.
|
// Generic comparator used in Map, List, etc.
|
||||||
template <class T>
|
template <class T>
|
||||||
|
|
Loading…
Reference in New Issue