summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRémi Verschelde <remi@verschelde.fr>2021-04-28 09:33:22 +0200
committerGitHub <noreply@github.com>2021-04-28 09:33:22 +0200
commit5c5cfaabf251151e0f62edcff5e8d1e71f521f42 (patch)
tree4ab3f04c8b2c57d95dca089a3bf2a4e71da3d4fc
parent1c2766e24073314a7dff711095610e737784bd46 (diff)
parenta2c419bdc9db76666a9c9a7b6e50e6a0d1e33d55 (diff)
Merge pull request #42607 from Dragoncraft89/type_checks
Raise error if Resource is of wrong type as function argument
-rw-r--r--core/variant/binder_common.h12
1 files changed, 12 insertions, 0 deletions
diff --git a/core/variant/binder_common.h b/core/variant/binder_common.h
index 86bbf43266..830e0a5cbd 100644
--- a/core/variant/binder_common.h
+++ b/core/variant/binder_common.h
@@ -122,6 +122,18 @@ struct VariantObjectClassChecker {
}
};
+template <typename T>
+class Ref;
+
+template <typename T>
+struct VariantObjectClassChecker<const Ref<T> &> {
+ static _FORCE_INLINE_ bool check(const Variant &p_variant) {
+ Object *obj = p_variant;
+ const Ref<T> node = p_variant;
+ return node.ptr() || !obj;
+ }
+};
+
template <>
struct VariantObjectClassChecker<Node *> {
static _FORCE_INLINE_ bool check(const Variant &p_variant) {