瀏覽代碼

Merge pull request #50056 from Blackiris/fix-in-operator

Fix 'in' operator to check if an object member exists
George Marques 4 年之前
父節點
當前提交
7bc52e56c0
共有 1 個文件被更改,包括 8 次插入4 次删除
  1. 8 4
      core/variant/variant_op.h

+ 8 - 4
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();