pike.git / src / interpreter.h

version» Context lines:

pike.git/src/interpreter.h:648:    o_subtract();    assign_lvalue(sp-3, sp-1);    assign_svalue(sp-3, sp-1);    pop_n_elems(2);    break;    }       CASE(F_DEC_AND_POP);    {    union anything *u=get_pointer_if_this_type(sp-2, T_INT); -  if(u) +  if(u + #ifdef AUTO_BIGNUM +  && !INT_TYPE_SUB_OVERFLOW(u->integer, 1) + #endif + )    { -  /* FIXME: Bignum. */ +     instr=-- u->integer;    pop_n_elems(2);    }else{    lvalue_to_svalue_no_free(sp, sp-2); sp++;    push_int(1);    o_subtract();    assign_lvalue(sp-3, sp-1);    pop_n_elems(3);    }    break;
pike.git/src/interpreter.h:978:    tmp=switch_lookup(fp->context.prog->    constants[GET_ARG()].sval.u.array,sp-1);    pc=(unsigned char *)DO_ALIGN(pc,sizeof(INT32));    pc+=(tmp>=0 ? 1+tmp*2 : 2*~tmp) * sizeof(INT32);    if(*(INT32*)pc < 0) fast_check_threads_etc(7);    pc+=*(INT32*)pc;    pop_stack();    break;    }    -  /* FIXME: Does this need bignum tests? */ +  /* FIXME: Does this need bignum tests? /Fixed - Hubbe */    LOOP(F_INC_LOOP, 1, <, is_lt);    LOOP(F_DEC_LOOP, -1, >, is_gt);    LOOP(F_INC_NEQ_LOOP, 1, !=, !is_eq);    LOOP(F_DEC_NEQ_LOOP, -1, !=, !is_eq);       CASE(F_FOREACH) /* array, lvalue, X, i */    {    if(sp[-4].type != T_ARRAY)    PIKE_ERROR("foreach", "Bad argument 1.\n", sp-3, 1);    if(sp[-1].u.integer < sp[-4].u.array->size)