aboutsummaryrefslogtreecommitdiff
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
commit3aa063d79c5ae4057e312d534abf65ac37801258 (patch)
tree7844c561a0e97cefebaae40c6fc9e60acd59628f /src/runtime/string.c
parentffafad1919cea67eadd743b56f4768fd120e9883 (diff)
downloadgo-3aa063d79c5ae4057e312d534abf65ac37801258.tar.xz
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 fec66f8a82..4dba5ad7e5 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)
{