summaryrefslogtreecommitdiff
path: root/src/runtime/string.c
diff options
context:
space:
mode:
authorRuss Cox <rsc@golang.org>2008-11-23 17:08:55 -0800
committerRuss Cox <rsc@golang.org>2008-11-23 17:08:55 -0800
commitdd4aebb84ab8ee8dd11b12a7802a02373fabac6c (patch)
tree7844c561a0e97cefebaae40c6fc9e60acd59628f /src/runtime/string.c
parent90aa232ac15839303847e28b1bc0747b5e9cc114 (diff)
downloadgolang-dd4aebb84ab8ee8dd11b12a7802a02373fabac6c.tar.gz
delete stack mark strings
in favor of using in-memory copy of symbol table. $ ls -l pretty pretty.big -rwxr-xr-x 1 rsc eng 439516 Nov 21 16:43 pretty -rwxr-xr-x 1 rsc eng 580984 Nov 21 16:20 pretty.big $ R=r DELTA=446 (238 added, 178 deleted, 30 changed) OCL=19851 CL=19884
Diffstat (limited to 'src/runtime/string.c')
-rw-r--r--src/runtime/string.c15
1 files changed, 14 insertions, 1 deletions
diff --git a/src/runtime/string.c b/src/runtime/string.c
index fec66f8a8..4dba5ad7e 100644
--- a/src/runtime/string.c
+++ b/src/runtime/string.c
@@ -8,7 +8,7 @@ static int32 empty = 0;
string emptystring = (string)&empty;
int32
-findnull(int8 *s)
+findnull(byte *s)
{
int32 l;
@@ -17,6 +17,19 @@ findnull(int8 *s)
return l;
}
+string
+gostring(byte *str)
+{
+ int32 l;
+ string s;
+
+ l = findnull(str);
+ s = mal(sizeof(s->len)+l+1);
+ s->len = l;
+ mcpy(s->str, str, l+1);
+ return s;
+}
+
void
sys·catstring(string s1, string s2, string s3)
{