|
@@ -1118,6 +1118,8 @@ void Variant::evaluate(const Operator &p_op, const Variant &p_a,
|
|
CASE_TYPE(math, OP_SHIFT_LEFT, INT) {
|
|
CASE_TYPE(math, OP_SHIFT_LEFT, INT) {
|
|
if (p_b.type != INT)
|
|
if (p_b.type != INT)
|
|
_RETURN_FAIL;
|
|
_RETURN_FAIL;
|
|
|
|
+ if (p_b._data._int < 0 || p_b._data._int >= 64)
|
|
|
|
+ _RETURN_FAIL;
|
|
_RETURN(p_a._data._int << p_b._data._int);
|
|
_RETURN(p_a._data._int << p_b._data._int);
|
|
}
|
|
}
|
|
|
|
|
|
@@ -1129,6 +1131,8 @@ void Variant::evaluate(const Operator &p_op, const Variant &p_a,
|
|
CASE_TYPE(math, OP_SHIFT_RIGHT, INT) {
|
|
CASE_TYPE(math, OP_SHIFT_RIGHT, INT) {
|
|
if (p_b.type != INT)
|
|
if (p_b.type != INT)
|
|
_RETURN_FAIL;
|
|
_RETURN_FAIL;
|
|
|
|
+ if (p_b._data._int < 0 || p_b._data._int >= 64)
|
|
|
|
+ _RETURN_FAIL;
|
|
_RETURN(p_a._data._int >> p_b._data._int);
|
|
_RETURN(p_a._data._int >> p_b._data._int);
|
|
}
|
|
}
|
|
|
|
|