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 | 3aa063d79c5ae4057e312d534abf65ac37801258 (patch) | |
| tree | 7844c561a0e97cefebaae40c6fc9e60acd59628f /src/runtime/string.c | |
| parent | ffafad1919cea67eadd743b56f4768fd120e9883 (diff) | |
| download | go-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.c | 15 |
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)∅ 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) { |
