diff options
author | Pedro J. Estébanez <pedrojrulez@gmail.com> | 2020-11-19 11:46:05 +0100 |
---|---|---|
committer | Pedro J. Estébanez <pedrojrulez@gmail.com> | 2020-11-19 12:01:54 +0100 |
commit | e1150bd912bd6076b8a94544c0ec32f75344976e (patch) | |
tree | 1ce12d46168557010f5f4c5aa2eb83b4a6d23f8e | |
parent | a3a3b02bed3137e0ccac2cbb544a71502a659b80 (diff) |
Warn about singleton being a Reference
-rw-r--r-- | core/config/engine.cpp | 10 | ||||
-rw-r--r-- | core/config/engine.h | 5 |
2 files changed, 11 insertions, 4 deletions
diff --git a/core/config/engine.cpp b/core/config/engine.cpp index b0037ffb37..8e2ab094b0 100644 --- a/core/config/engine.cpp +++ b/core/config/engine.cpp @@ -219,3 +219,13 @@ Engine *Engine::get_singleton() { Engine::Engine() { singleton = this; } + +Engine::Singleton::Singleton(const StringName &p_name, Object *p_ptr) : + name(p_name), + ptr(p_ptr) { +#ifdef DEBUG_ENABLED + if (Object::cast_to<Reference>(p_ptr)) { + ERR_PRINT("A class intended to be used as a singleton must *not* inherit from Reference."); + } +#endif +} diff --git a/core/config/engine.h b/core/config/engine.h index 1d3d963b39..0d9aa02f28 100644 --- a/core/config/engine.h +++ b/core/config/engine.h @@ -41,10 +41,7 @@ public: struct Singleton { StringName name; Object *ptr; - Singleton(const StringName &p_name = StringName(), Object *p_ptr = nullptr) : - name(p_name), - ptr(p_ptr) { - } + Singleton(const StringName &p_name = StringName(), Object *p_ptr = nullptr); }; private: |