pike.git
/
src
/
operators.c
version
»
Context lines:
10
20
40
80
file
none
3
pike.git/src/operators.c:3624:
if(sp[-1].u.float_number < 0) SIMPLE_BAD_ARG_ERROR("`*", 2, "float(0..)"); src = sp[-2].u.string; len = (ptrdiff_t)floor(src->len * sp[-1].u.float_number + 0.5); ret = begin_wide_shared_string(len, src->size_shift); len <<= src->size_shift; delta = src->len << src->size_shift; pos = ret->str; if (len > delta) {
-
MEMCPY
(pos, src->str, delta);
+
memcpy
(pos, src->str, delta);
pos += delta; len -= delta; while (len > delta) {
-
MEMCPY
(pos, ret->str, delta);
+
memcpy
(pos, ret->str, delta);
pos += delta; len -= delta; delta <<= 1; } if (len) {
-
MEMCPY
(pos, ret->str, len);
+
memcpy
(pos, ret->str, len);
} } else if (len) {
-
MEMCPY
(pos, src->str, len);
+
memcpy
(pos, src->str, len);
} pop_n_elems(2); push_string(low_end_shared_string(ret)); return; } case TWO_TYPES(T_STRING, T_INT): { struct pike_string *ret; char *pos; INT_TYPE e; ptrdiff_t len; if(sp[-1].u.integer < 0) SIMPLE_BAD_ARG_ERROR("`*", 2, "int(0..)"); ret=begin_wide_shared_string(sp[-2].u.string->len * sp[-1].u.integer, sp[-2].u.string->size_shift); pos=ret->str; len=sp[-2].u.string->len << sp[-2].u.string->size_shift; for(e=0;e<sp[-1].u.integer;e++,pos+=len)
-
MEMCPY
(pos,sp[-2].u.string->str,len);
+
memcpy
(pos,sp[-2].u.string->str,len);
pop_n_elems(2); push_string(low_end_shared_string(ret)); return; } case TWO_TYPES(T_ARRAY,T_STRING): { struct pike_string *ret; ret=implode(sp[-2].u.array,sp[-1].u.string); free_string(sp[-1].u.string);