diff options
| author | David du Colombier <0intro@gmail.com> | 2014-09-01 23:03:26 -0400 |
|---|---|---|
| committer | Russ Cox <rsc@golang.org> | 2014-09-01 23:03:26 -0400 |
| commit | 20d9cc4bb0dceed4d06338e69b7eea5287650fc7 (patch) | |
| tree | 71a29dc64c716d88703c78830c18f3a75a5db8d3 /src | |
| parent | 649c83530a9c3a71319ed3d2ff53d9ecf2f2fd04 (diff) | |
| download | go-20d9cc4bb0dceed4d06338e69b7eea5287650fc7.tar.xz | |
runtime: fix gogetenv on Plan 9
LGTM=rsc
R=rsc, ality
CC=golang-codereviews
https://golang.org/cl/137030043
Diffstat (limited to 'src')
| -rw-r--r-- | src/pkg/runtime/env_plan9.go | 18 |
1 files changed, 4 insertions, 14 deletions
diff --git a/src/pkg/runtime/env_plan9.go b/src/pkg/runtime/env_plan9.go index 85c1c856b0..b6dcb4c1ea 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) + n := seek(fd, 0, 2) - 1 - var p unsafe.Pointer + p := make([]byte, n) - // 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) - } - - 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 } |
