pike.git
/
src
/
operators.c
version
»
Context lines:
10
20
40
80
file
none
3
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);