diff options
| author | Russ Cox <rsc@golang.org> | 2014-09-03 11:10:38 -0400 |
|---|---|---|
| committer | Russ Cox <rsc@golang.org> | 2014-09-03 11:10:38 -0400 |
| commit | 0e07f1c99f7ba8f657eaab49bfe106abddbe93a9 (patch) | |
| tree | 67691fdac58500e723fca4713fc06caa9d843c7f /src/pkg/runtime/string.go | |
| parent | 2c780a35b986dec270640115fb3f28a9e1affeaf (diff) | |
| download | go-0e07f1c99f7ba8f657eaab49bfe106abddbe93a9.tar.xz | |
runtime: introduce, use funcPC to convert Go func to PC
This removes the ** unsafe hack.
Real bug fixed at chan.go:101.
LGTM=dave, r, iant
R=golang-codereviews, dave, r, iant
CC=dvyukov, golang-codereviews, khr
https://golang.org/cl/140870044
Diffstat (limited to 'src/pkg/runtime/string.go')
| -rw-r--r-- | src/pkg/runtime/string.go | 9 |
1 files changed, 3 insertions, 6 deletions
diff --git a/src/pkg/runtime/string.go b/src/pkg/runtime/string.go index e9ea926dff..1cefad9671 100644 --- a/src/pkg/runtime/string.go +++ b/src/pkg/runtime/string.go @@ -61,11 +61,10 @@ func concatstring5(a [5]string) string { func slicebytetostring(b []byte) string { if raceenabled && len(b) > 0 { - fn := slicebytetostring racereadrangepc(unsafe.Pointer(&b[0]), len(b), getcallerpc(unsafe.Pointer(&b)), - **(**uintptr)(unsafe.Pointer(&fn))) + funcPC(slicebytetostring)) } s, c := rawstring(len(b)) copy(c, b) @@ -82,11 +81,10 @@ func slicebytetostringtmp(b []byte) string { // m is a string-keyed map and k is a []byte. if raceenabled && len(b) > 0 { - fn := slicebytetostringtmp racereadrangepc(unsafe.Pointer(&b[0]), len(b), getcallerpc(unsafe.Pointer(&b)), - **(**uintptr)(unsafe.Pointer(&fn))) + funcPC(slicebytetostringtmp)) } return *(*string)(unsafe.Pointer(&b)) } @@ -120,11 +118,10 @@ func stringtoslicerune(s string) []rune { func slicerunetostring(a []rune) string { if raceenabled && len(a) > 0 { - fn := slicerunetostring racereadrangepc(unsafe.Pointer(&a[0]), len(a)*int(unsafe.Sizeof(a[0])), getcallerpc(unsafe.Pointer(&a)), - **(**uintptr)(unsafe.Pointer(&fn))) + funcPC(slicerunetostring)) } var dum [4]byte size1 := 0 |
