summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJulien Nguyen <julien.nguyen3@gmail.com>2021-06-30 21:22:23 +0200
committerJulien Nguyen <julien.nguyen3@gmail.com>2021-07-01 20:59:26 +0200
commit0a823e85d249e9a844f0252deb062efaeafa2d29 (patch)
tree727ba625015e9c45ab0104e4e19ef8496b8099da
parentad8a2b3d527f821d1a0b061811661d49d0920967 (diff)
Fix 'in' operator to check if an object member exists
-rw-r--r--core/variant/variant_op.h12
1 files changed, 8 insertions, 4 deletions
diff --git a/core/variant/variant_op.h b/core/variant/variant_op.h
index e744e76ea3..cbdd60f404 100644
--- a/core/variant/variant_op.h
+++ b/core/variant/variant_op.h
@@ -1261,8 +1261,10 @@ public:
const String &a = *VariantGetInternalPtr<String>::get_ptr(&p_left);
- b->get(a, &r_valid);
- *r_ret = r_valid;
+ bool exist;
+ b->get(a, &exist);
+ *r_ret = exist;
+ r_valid = true;
}
static inline void validated_evaluate(const Variant *left, const Variant *right, Variant *r_ret) {
Object *l = right->get_validated_object();
@@ -1293,8 +1295,10 @@ public:
const StringName &a = *VariantGetInternalPtr<StringName>::get_ptr(&p_left);
- b->get(a, &r_valid);
- *r_ret = r_valid;
+ bool exist;
+ b->get(a, &exist);
+ *r_ret = exist;
+ r_valid = true;
}
static inline void validated_evaluate(const Variant *left, const Variant *right, Variant *r_ret) {
Object *l = right->get_validated_object();