Explorar o código

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

Fix `Variant::in()` error on invalid `evaluate`
Rémi Verschelde %!s(int64=2) %!d(string=hai) anos
pai
achega
4a2c2170b4
Modificáronse 1 ficheiros con 5 adicións e 2 borrados
  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);
 	if (r_valid) {
 		*r_valid = valid;
+	}
+	if (valid) {
+		ERR_FAIL_COND_V(ret.type != BOOL, false);
+		return *VariantGetInternalPtr<bool>::get_ptr(&ret);
+	} else {
 		return false;
 	}
-	ERR_FAIL_COND_V(ret.type != BOOL, false);
-	return *VariantGetInternalPtr<bool>::get_ptr(&ret);
 }