]> Cypherpunks repositories - gostls13.git/commitdiff
reflect: use unsafe.String in name.name and name.tag
authorTobias Klauser <tklauser@distanz.ch>
Tue, 8 Nov 2022 13:07:46 +0000 (14:07 +0100)
committerGopher Robot <gobot@golang.org>
Tue, 8 Nov 2022 18:33:21 +0000 (18:33 +0000)
Change-Id: I9f54f1463b0682d0d76cd57e5fef318565883a87
Reviewed-on: https://go-review.googlesource.com/c/go/+/448675
Auto-Submit: Tobias Klauser <tobias.klauser@gmail.com>
Run-TryBot: Tobias Klauser <tobias.klauser@gmail.com>
Reviewed-by: Ian Lance Taylor <iant@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Michael Knyszek <mknyszek@google.com>
src/reflect/type.go

index b06b7ffd9e2d6f3fb9535091bbfe8442e1120c04..01d14567c35dc3d20e76c299b04c930891027c88 100644 (file)
@@ -17,7 +17,6 @@ package reflect
 
 import (
        "internal/goarch"
-       "internal/unsafeheader"
        "strconv"
        "sync"
        "unicode"
@@ -525,27 +524,21 @@ func writeVarint(buf []byte, n int) int {
        }
 }
 
-func (n name) name() (s string) {
+func (n name) name() string {
        if n.bytes == nil {
-               return
+               return ""
        }
        i, l := n.readVarint(1)
-       hdr := (*unsafeheader.String)(unsafe.Pointer(&s))
-       hdr.Data = unsafe.Pointer(n.data(1+i, "non-empty string"))
-       hdr.Len = l
-       return
+       return unsafe.String(n.data(1+i, "non-empty string"), l)
 }
 
-func (n name) tag() (s string) {
+func (n name) tag() string {
        if !n.hasTag() {
                return ""
        }
        i, l := n.readVarint(1)
        i2, l2 := n.readVarint(1 + i + l)
-       hdr := (*unsafeheader.String)(unsafe.Pointer(&s))
-       hdr.Data = unsafe.Pointer(n.data(1+i+l+i2, "non-empty string"))
-       hdr.Len = l2
-       return
+       return unsafe.String(n.data(1+i+l+i2, "non-empty string"), l2)
 }
 
 func (n name) pkgPath() string {