pike.git / src / operators.c

version» Context lines:

pike.git/src/operators.c:1758:    Pike_sp[e-1] = Pike_sp[-1];    Pike_sp--;    }    }    add_strings(args);    return;       case BIT_INT:    {    INT_TYPE size = Pike_sp[-args].u.integer; +  int all_undef = !size && SUBTYPEOF(Pike_sp[-args]);    for(e = -args+1; e < 0; e++)    {    if (DO_INT_TYPE_ADD_OVERFLOW(size, Pike_sp[e].u.integer, &size))    {    convert_svalue_to_bignum(Pike_sp-args);    f_add(args);    return;    } -  +  all_undef = all_undef && !size && SUBTYPEOF(Pike_sp[e]);    }    Pike_sp-=args; -  +  if (all_undef) { +  /* Adding UNDEFINED's give UNDEFINED. */ +  push_undefined(); +  } else {    push_int(size); -  +  }    break;    }       case BIT_FLOAT:    {    FLOAT_ARG_TYPE res = Pike_sp[-args].u.float_number;    for(e=args-1; e>0; e-- )    res += Pike_sp[-e].u.float_number;    Pike_sp -= args-1;    Pike_sp[-1].u.float_number = res;