Commit ef64d9ff authored by Keith Randall's avatar Keith Randall

runtime: don't allocate a new string in printf

LGTM=dave
R=rsc, dave
CC=golang-codereviews
https://golang.org/cl/139890043
parent 6a76bca3
......@@ -39,7 +39,7 @@ func goprintf(s string) {
// and type tables.
//go:nosplit
func printf(s *byte) {
vprintf(gostring(s), add(unsafe.Pointer(&s), unsafe.Sizeof(s)))
vprintf(gostringnocopy(s), add(unsafe.Pointer(&s), unsafe.Sizeof(s)))
}
// sprintf is only called from C code.
......
......@@ -90,6 +90,7 @@ runtime·gobytes(byte *p, intgo n)
return sl;
}
#pragma textflag NOSPLIT
String
runtime·gostringnocopy(byte *str)
{
......
......@@ -203,6 +203,7 @@ func noteclear(n *note)
func lock(lk *mutex)
func unlock(lk *mutex)
func purgecachedstats(c *mcache)
func gostringnocopy(b *byte) string
//go:noescape
func write(fd uintptr, p unsafe.Pointer, n int32) int32
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment