pike.git
/
src
/
operators.c
version
»
Context lines:
10
20
40
80
file
none
3
pike.git/src/operators.c:3394:
modify_stack_depth(-1); return 1; default: return 0; } } PMOD_EXPORT void o_lsh(void) {
+
if (sp[-1].u.integer < 0) {
+
int args = 2;
+
SIMPLE_BAD_ARG_ERROR("`<<", 2, "int(0..)|object");
+
}
if ((TYPEOF(sp[-1]) == T_INT) && (TYPEOF(sp[-2]) == T_INT) && INT_TYPE_LSH_OVERFLOW(sp[-2].u.integer, sp[-1].u.integer)) convert_stack_top_to_bignum(); if(TYPEOF(sp[-1]) != T_INT || TYPEOF(sp[-2]) != T_INT) { int args = 2; if(call_lfun(LFUN_LSH, LFUN_RLSH)) return; if(TYPEOF(sp[-2]) != T_INT) SIMPLE_BAD_ARG_ERROR("`<<", 1, "int|object"); SIMPLE_BAD_ARG_ERROR("`<<", 2, "int(0..)|object"); }
-
if (sp[-1].u.integer < 0) {
-
int args = 2;
-
SIMPLE_BAD_ARG_ERROR("`<<", 2, "int(0..)|object");
-
}
+
sp--; SET_SVAL(sp[-1], T_INT, NUMBER_NUMBER, integer, sp[-1].u.integer << sp->u.integer); } /*! @decl int `<<(int arg1, int arg2) *! @decl mixed `<<(object arg1, int|object arg2) *! @decl mixed `<<(int arg1, object arg2) *! *! Left shift.