pike.git / src / array.c

version» Context lines:

pike.git/src/array.c:1261:    for(e=0;e<str->len;e++)    {    ITEM(ret)[e].type=T_STRING;    ITEM(ret)[e].u.string=make_shared_binary_string(str->str+e,1);    }    }else{    struct mem_searcher searcher;       s=str->str;    end=s+str->len; -  e=0; +     -  +  ret=allocate_array(10); +  ret->size=0; +     init_memsearch(&searcher, del->str, del->len, str->len);       while((tmp=memory_search(&searcher, s, end-s)))    { -  check_stack(1); -  push_string(make_shared_binary_string(s, tmp-s)); +  if(ret->size == ret->malloced_size) +  { +  e=ret->size; +  ret=resize_array(ret, ret->size * 2); +  ret->size=0; +  } +  +  ITEM(ret)[ret->size].u.string=make_shared_binary_string(s, tmp-s); +  ITEM(ret)[ret->size].type=T_STRING; +  ret->size++; +     s=tmp+del->len; -  e++; +     } -  check_stack(1); -  push_string(make_shared_binary_string(s, end-s)); -  e++; -  ret=aggregate_array(e); +  +  if(ret->size == ret->malloced_size) +  ret=resize_array(ret, ret->size * 2); +  +  ITEM(ret)[ret->size].u.string=make_shared_binary_string(s, end-s); +  ITEM(ret)[ret->size].type=T_STRING; +  ret->size++;    }    ret->type_field=BIT_STRING;    return ret;   }      struct pike_string *implode(struct array *a,struct pike_string *del)   {    INT32 len,e, inited;    char *r;    struct pike_string *ret,*tmp;