diff options
author | David du Colombier <0intro@gmail.com> | 2014-09-01 23:03:26 -0400 |
---|---|---|
committer | David du Colombier <0intro@gmail.com> | 2014-09-01 23:03:26 -0400 |
commit | c7b98dd157957937ede80f8ee5a9baf4c48e9cb7 (patch) | |
tree | 0730dca024bcb18f78b6bbc66e26343cbe43e143 /src/pkg | |
parent | 4cac824813e6aea02378b1ab11ce3cb5a07070e4 (diff) | |
download | go-c7b98dd157957937ede80f8ee5a9baf4c48e9cb7.tar.gz |
runtime: fix gogetenv on Plan 9
LGTM=rsc
R=rsc, ality
CC=golang-codereviews
https://codereview.appspot.com/137030043
Committer: Russ Cox <rsc@golang.org>
Diffstat (limited to 'src/pkg')
-rw-r--r-- | src/pkg/runtime/env_plan9.go | 20 |
1 files changed, 5 insertions, 15 deletions
diff --git a/src/pkg/runtime/env_plan9.go b/src/pkg/runtime/env_plan9.go index 85c1c856b..b6dcb4c1e 100644 --- a/src/pkg/runtime/env_plan9.go +++ b/src/pkg/runtime/env_plan9.go @@ -30,21 +30,11 @@ func gogetenv(key string) string { if fd < 0 { return "" } - n := seek(fd, 0, 2) - - var p unsafe.Pointer - - // Be sure not to allocate for $GOTRACEBACK. - if key == "GOTRACEBACK" { - if n >= 128 { - return "" - } - p = unsafe.Pointer(&tracebackbuf[0]) - } else { - p = gomallocgc(uintptr(n+1), nil, 0) - } + n := seek(fd, 0, 2) - 1 + + p := make([]byte, n) - r := pread(fd, p, int32(n), 0) + r := pread(fd, unsafe.Pointer(&p[0]), int32(n), 0) close(fd) if r < 0 { return "" @@ -52,7 +42,7 @@ func gogetenv(key string) string { var s string sp := (*_string)(unsafe.Pointer(&s)) - sp.str = (*byte)(p) + sp.str = &p[0] sp.len = int(r) return s } |