Fix crash when using a modulo operator between a float and an integer

This commit is contained in:
Xavier Sellier 2025-01-14 12:52:40 +01:00
parent d79ff848fa
commit b85096463e
No known key found for this signature in database
GPG key ID: 61235A4D1A13B336

View file

@ -591,7 +591,8 @@ void GDScriptByteCodeGenerator::write_binary_operator(const Address &p_target, V
if (valid && (p_operator == Variant::OP_DIVIDE || p_operator == Variant::OP_MODULE)) {
switch (p_left_operand.type.builtin_type) {
case Variant::INT:
valid = p_right_operand.type.builtin_type != Variant::INT;
// Cannot use modulo between int / float, we should raise an error later in GDScript
valid = p_right_operand.type.builtin_type != Variant::INT && p_operator == Variant::OP_DIVIDE;
break;
case Variant::VECTOR2I:
case Variant::VECTOR3I: