pike.git
/
src
/
operators.c
version
»
Context lines:
10
20
40
80
file
none
3
pike.git/src/operators.c:1654:
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; } break; case BIT_FLOAT|BIT_INT: { double res = 0.0;
-
for(
int i=0;i<args;i++)
+
int i
;
+
for(i
=0;
i<args;
i++)
if (TYPEOF(Pike_sp[i-args]) == T_FLOAT) res += Pike_sp[i-args].u.float_number; else res += (double)Pike_sp[i-args].u.integer; Pike_sp-=args; push_float(res); return; } #define ADD(TYPE, ADD_FUNC, PUSH_FUNC) do { \ struct TYPE *x = ADD_FUNC (Pike_sp - args, args); \ pop_n_elems (args); \ PUSH_FUNC (x); \ return; \ } while (0) #define REMOVE_UNDEFINED(TYPE) \ do { \ int to = -args, i=-args; \
-
+
int i; \
for(; i<0; i++) \ { \ if(TYPEOF(Pike_sp[i]) == PIKE_T_INT) \ { \ if(!IS_UNDEFINED(Pike_sp+i)) \ SIMPLE_ARG_TYPE_ERROR("`+", args+i, #TYPE); \ } \ else if(to!=i) \ Pike_sp[to++] = Pike_sp[i]; \ else to++; \ } \
-
for(
int
i=to; i<0; i++) \
+
for(i=to; i<0; i++)
\
TYPEOF(Pike_sp[i])=PIKE_T_INT; \ Pike_sp += to; \ args += to; \ } while(0); case BIT_ARRAY|BIT_INT: REMOVE_UNDEFINED (array); /* Fallthrough */ case BIT_ARRAY: ADD (array, add_arrays, push_array);