pike.git / src / operators.c

version» Context lines:

pike.git/src/operators.c:1392:   {    if(TYPEOF(sp[-1]) == PIKE_T_OBJECT ||    TYPEOF(sp[-2]) == PIKE_T_OBJECT)    {    if(TYPEOF(sp[-2]) == PIKE_T_OBJECT &&    /* Note: pairwise add always has an extra reference! */    sp[-2].u.object->refs == 2 &&    call_lhs_lfun(LFUN_ADD_EQ,2))    return 1; /* optimized version of +. */    if(call_lfun(LFUN_ADD, LFUN_RADD)) -  return 1; /* standard editon */ +  return !IS_UNDEFINED(sp-1);    }       if (TYPEOF(sp[-2]) != TYPEOF(sp[-1]))    {    if(IS_UNDEFINED(sp-2))    {    stack_swap();    pop_stack();    return 1;    }
pike.git/src/operators.c:1591:    pairwise_add:    {    struct svalue *s=sp-args;    push_svalue(s);    for(e=1;e<args;e++)    {    push_svalue(s+e);    if(!pair_add())    {    Pike_error("Addition on unsupported types: %s + %s\nm", -  get_name_of_type(TYPEOF(sp[-1])), +  get_name_of_type(TYPEOF(*(s+e))),    get_name_of_type(TYPEOF(*s)));    }    }    assign_svalue(s,sp-1);    pop_n_elems(sp-s-1);    return;    }       case BIT_STRING:    add_strings(args);