diff --git a/src/stralloc.c b/src/stralloc.c index 25a59d4e682b46261759be93dee6827a83507591..d8f3344e9b472fdadc9bd2dda06b0fd68d5d86f1 100644 --- a/src/stralloc.c +++ b/src/stralloc.c @@ -15,7 +15,7 @@ #include <ctype.h> -RCSID("$Id: stralloc.c,v 1.37 1998/05/25 19:38:31 grubba Exp $"); +RCSID("$Id: stralloc.c,v 1.38 1998/09/18 21:33:07 hubbe Exp $"); #define BEGIN_HASH_SIZE 997 #define MAX_AVG_LINK_LENGTH 3 @@ -263,6 +263,16 @@ struct pike_string *debug_make_shared_string(const char *str) return make_shared_binary_string(str, strlen(str)); } +struct pike_string *make_shared_string2(const INT16 *str) +{ + INT32 e,len; + struct pike_string *s; + for(len=0;str[len];len++); + s=begin_shared_string(len); + for(e=0;e<len;e++) s->str[e]=str[e]; + return end_shared_string(s); +} + /*** Free strings ***/ void unlink_pike_string(struct pike_string *s) diff --git a/src/stralloc.h b/src/stralloc.h index 243a8606f0ec77a7e5bca3c9401af7b3b16d6571..642d361edff737b3e7cdd49b0663e8ca5f97594a 100644 --- a/src/stralloc.h +++ b/src/stralloc.h @@ -5,7 +5,7 @@ \*/ /* - * $Id: stralloc.h,v 1.16 1998/05/25 10:38:46 hubbe Exp $ + * $Id: stralloc.h,v 1.17 1998/09/18 21:33:07 hubbe Exp $ */ #ifndef STRALLOC_H #define STRALLOC_H @@ -81,6 +81,7 @@ struct pike_string *debug_begin_shared_string(int len); struct pike_string *end_shared_string(struct pike_string *s); struct pike_string * debug_make_shared_binary_string(const char *str,int len); struct pike_string *debug_make_shared_string(const char *str); +struct pike_string *make_shared_string2(const INT16 *str); void unlink_pike_string(struct pike_string *s); void really_free_string(struct pike_string *s); void debug_free_string(struct pike_string *s);