diff options
author | Julien Nguyen <julien.nguyen3@gmail.com> | 2021-06-30 21:22:23 +0200 |
---|---|---|
committer | Julien Nguyen <julien.nguyen3@gmail.com> | 2021-07-01 20:59:26 +0200 |
commit | 0a823e85d249e9a844f0252deb062efaeafa2d29 (patch) | |
tree | 727ba625015e9c45ab0104e4e19ef8496b8099da | |
parent | ad8a2b3d527f821d1a0b061811661d49d0920967 (diff) |
Fix 'in' operator to check if an object member exists
-rw-r--r-- | core/variant/variant_op.h | 12 |
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(); |