diff options
author | Russ Cox <rsc@golang.org> | 2008-11-23 17:08:55 -0800 |
---|---|---|
committer | Russ Cox <rsc@golang.org> | 2008-11-23 17:08:55 -0800 |
commit | dd4aebb84ab8ee8dd11b12a7802a02373fabac6c (patch) | |
tree | 7844c561a0e97cefebaae40c6fc9e60acd59628f /src/runtime/string.c | |
parent | 90aa232ac15839303847e28b1bc0747b5e9cc114 (diff) | |
download | golang-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.c | 15 |
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)∅ 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) { |