pike.git / src / operators.c

version» Context lines:

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);