Add check to ensure registered classes are declared
Checks that all classes registered to `ClassDB` have been properly declared with `GDCLASS`
This commit is contained in:
parent
3c7114e1c1
commit
4b205afd3d
2 changed files with 6 additions and 0 deletions
|
@ -170,6 +170,7 @@ public:
|
|||
template <class T>
|
||||
static void register_class() {
|
||||
GLOBAL_LOCK_FUNCTION;
|
||||
static_assert(TypesAreSame<typename T::self_type, T>::value, "Class not declared properly, please use GDCLASS.");
|
||||
T::initialize_class();
|
||||
ClassInfo *t = classes.getptr(T::get_class_static());
|
||||
ERR_FAIL_COND(!t);
|
||||
|
@ -182,6 +183,7 @@ public:
|
|||
template <class T>
|
||||
static void register_virtual_class() {
|
||||
GLOBAL_LOCK_FUNCTION;
|
||||
static_assert(TypesAreSame<typename T::self_type, T>::value, "Class not declared properly, please use GDCLASS.");
|
||||
T::initialize_class();
|
||||
ClassInfo *t = classes.getptr(T::get_class_static());
|
||||
ERR_FAIL_COND(!t);
|
||||
|
@ -198,6 +200,7 @@ public:
|
|||
template <class T>
|
||||
static void register_custom_instance_class() {
|
||||
GLOBAL_LOCK_FUNCTION;
|
||||
static_assert(TypesAreSame<typename T::self_type, T>::value, "Class not declared properly, please use GDCLASS.");
|
||||
T::initialize_class();
|
||||
ClassInfo *t = classes.getptr(T::get_class_static());
|
||||
ERR_FAIL_COND(!t);
|
||||
|
|
|
@ -269,6 +269,7 @@ private:
|
|||
friend class ClassDB; \
|
||||
\
|
||||
public: \
|
||||
typedef m_class self_type; \
|
||||
virtual String get_class() const { \
|
||||
return String(#m_class); \
|
||||
} \
|
||||
|
@ -407,6 +408,8 @@ class ObjectRC;
|
|||
|
||||
class Object {
|
||||
public:
|
||||
typedef Object self_type;
|
||||
|
||||
enum ConnectFlags {
|
||||
|
||||
CONNECT_DEFERRED = 1,
|
||||
|
|
Loading…
Reference in a new issue