Browse Source

Merge pull request #62921 from cdemirer/fix-variant-in

Fix `Variant::in()` error on invalid `evaluate`
Rémi Verschelde 2 years ago
parent
commit
4a2c2170b4
1 changed files with 5 additions and 2 deletions
  1. 5 2
      core/variant/variant_op.cpp

+ 5 - 2
core/variant/variant_op.cpp

@@ -1105,8 +1105,11 @@ bool Variant::in(const Variant &p_index, bool *r_valid) const {
 	evaluate(OP_IN, p_index, *this, ret, valid);
 	evaluate(OP_IN, p_index, *this, ret, valid);
 	if (r_valid) {
 	if (r_valid) {
 		*r_valid = valid;
 		*r_valid = valid;
+	}
+	if (valid) {
+		ERR_FAIL_COND_V(ret.type != BOOL, false);
+		return *VariantGetInternalPtr<bool>::get_ptr(&ret);
+	} else {
 		return false;
 		return false;
 	}
 	}
-	ERR_FAIL_COND_V(ret.type != BOOL, false);
-	return *VariantGetInternalPtr<bool>::get_ptr(&ret);
 }
 }