]> Cypherpunks repositories - gostls13.git/commitdiff
cmd/internal/pkgpath: use strings.Builder
authorhopehook <hopehook.com@gmail.com>
Thu, 1 Sep 2022 13:53:22 +0000 (21:53 +0800)
committerMatthew Dempsky <mdempsky@google.com>
Thu, 1 Sep 2022 21:27:01 +0000 (21:27 +0000)
Since when go1.17 is now used for bootstraping.

Change-Id: I5f763dec1cb152f94ab1c677d3fa26da17abf097
Reviewed-on: https://go-review.googlesource.com/c/go/+/427557
Reviewed-by: Heschi Kreinick <heschi@google.com>
Reviewed-by: Keith Randall <khr@golang.org>
Reviewed-by: Cuong Manh Le <cuong.manhle.vn@gmail.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Auto-Submit: Keith Randall <khr@golang.org>
Run-TryBot: hopehook <hopehook@golangcn.org>
Reviewed-by: Keith Randall <khr@google.com>
src/cmd/internal/pkgpath/pkgpath.go

index 40a040a81af6acb54eb272d7bf388b8f79289d99..e3c76dced4bbb97442a90f777271dd16ec20e66c 100644 (file)
@@ -87,13 +87,11 @@ func toSymbolV1(ppath string) string {
 
 // toSymbolV2 converts a package path using the second mangling scheme.
 func toSymbolV2(ppath string) string {
-       // This has to build at boostrap time, so it has to build
-       // with Go 1.4, so we don't use strings.Builder.
-       bsl := make([]byte, 0, len(ppath))
+       var bsl strings.Builder
        changed := false
        for _, c := range ppath {
                if ('A' <= c && c <= 'Z') || ('a' <= c && c <= 'z') || ('0' <= c && c <= '9') || c == '_' {
-                       bsl = append(bsl, byte(c))
+                       bsl.WriteByte(byte(c))
                        continue
                }
                var enc string
@@ -107,13 +105,13 @@ func toSymbolV2(ppath string) string {
                default:
                        enc = fmt.Sprintf("..U%08x", c)
                }
-               bsl = append(bsl, enc...)
+               bsl.WriteString(enc)
                changed = true
        }
        if !changed {
                return ppath
        }
-       return string(bsl)
+       return bsl.String()
 }
 
 // v3UnderscoreCodes maps from a character that supports an underscore
@@ -137,19 +135,18 @@ var v3UnderscoreCodes = map[byte]byte{
 
 // toSymbolV3 converts a package path using the third mangling scheme.
 func toSymbolV3(ppath string) string {
-       // This has to build at boostrap time, so it has to build
-       // with Go 1.4, so we don't use strings.Builder.
-       bsl := make([]byte, 0, len(ppath))
+       var bsl strings.Builder
        changed := false
        for _, c := range ppath {
                if ('A' <= c && c <= 'Z') || ('a' <= c && c <= 'z') || ('0' <= c && c <= '9') {
-                       bsl = append(bsl, byte(c))
+                       bsl.WriteByte(byte(c))
                        continue
                }
 
                if c < 0x80 {
                        if u, ok := v3UnderscoreCodes[byte(c)]; ok {
-                               bsl = append(bsl, '_', u)
+                               bsl.WriteByte('_')
+                               bsl.WriteByte(u)
                                changed = true
                                continue
                        }
@@ -164,11 +161,11 @@ func toSymbolV3(ppath string) string {
                default:
                        enc = fmt.Sprintf("_U%08x", c)
                }
-               bsl = append(bsl, enc...)
+               bsl.WriteString(enc)
                changed = true
        }
        if !changed {
                return ppath
        }
-       return string(bsl)
+       return bsl.String()
 }