Branch: Tag:

1997-02-11

1997-02-11 07:11:52 by Fredrik Hübinette (Hubbe) <hubbe@hubbe.net>

some string optimizations moved from f_add to stralloc.c

Rev: src/operators.c:1.7
Rev: src/stralloc.c:1.10
Rev: src/stralloc.h:1.7

447:    return low_binary_strcmp(a->str,a->len,b->str,b->len);   }    + struct pike_string *realloc_unlinked_string(struct pike_string *a, INT32 size) + { +  struct pike_string *r; +  r=(struct pike_string *)realloc((char *)a, +  sizeof(struct pike_string)+size); +  +  if(!r) +  { +  r=begin_shared_string(size); +  MEMCPY(r->str, a->str, a->len); +  free((char *)a); +  } +  +  r->len=size; +  r->str[size]=0; +  return r; + } +  + /* Returns an unlinked string ready for end_shared_string */ + struct pike_string *realloc_shared_string(struct pike_string *a, INT32 size) + { +  struct pike_string *r; +  if(a->refs==1) +  { +  unlink_pike_string(a); +  return realloc_unlinked_string(a, size); +  }else{ +  r=begin_shared_string(size); +  MEMCPY(r->str, a->str, a->len); +  return r; +  } + } +    /*** Add strings ***/   struct pike_string *add_shared_strings(struct pike_string *a,    struct pike_string *b)