]> Cypherpunks repositories - gostls13.git/commitdiff
cmd/cgo: use strings.Builder
authorcuiweixie <cuiweixie@gmail.com>
Sun, 4 Sep 2022 12:01:19 +0000 (20:01 +0800)
committerGopher Robot <gobot@golang.org>
Thu, 8 Sep 2022 14:33:35 +0000 (14:33 +0000)
Change-Id: I427776e5b2d9c7279932548c86c8faded0eed041
Reviewed-on: https://go-review.googlesource.com/c/go/+/428285
Run-TryBot: Ian Lance Taylor <iant@google.com>
Reviewed-by: Michael Knyszek <mknyszek@google.com>
Auto-Submit: Ian Lance Taylor <iant@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Ian Lance Taylor <iant@google.com>
Run-TryBot: xie cui <523516579@qq.com>

src/cmd/cgo/gcc.go
src/cmd/cgo/godefs.go
src/cmd/cgo/out.go

index 43f94bb0e53b65009834817602151d0b13f3d31c..06cf46f63fa6634aa10c22699c064b6d79dff8df 100644 (file)
@@ -2915,7 +2915,7 @@ func (c *typeConv) Struct(dt *dwarf.StructType, pos token.Pos) (expr *ast.Struct
        // Minimum alignment for a struct is 1 byte.
        align = 1
 
-       var buf bytes.Buffer
+       var buf strings.Builder
        buf.WriteString("struct {")
        fld := make([]*ast.Field, 0, 2*len(dt.Field)+1) // enough for padding around every field
        sizes := make([]int64, 0, 2*len(dt.Field)+1)
index 3a27b31bfb3294a65e1aa2abff7ba568bb5b0206..f62867053f58211c680c2a186a29aa9b680794ac 100644 (file)
@@ -5,7 +5,6 @@
 package main
 
 import (
-       "bytes"
        "fmt"
        "go/ast"
        "go/printer"
@@ -17,7 +16,7 @@ import (
 
 // godefs returns the output for -godefs mode.
 func (p *Package) godefs(f *File, args []string) string {
-       var buf bytes.Buffer
+       var buf strings.Builder
 
        fmt.Fprintf(&buf, "// Code generated by cmd/cgo -godefs; DO NOT EDIT.\n")
        fmt.Fprintf(&buf, "// %s %s\n", filepath.Base(args[0]), strings.Join(args[1:], " "))
@@ -115,7 +114,7 @@ func (p *Package) godefs(f *File, args []string) string {
        return buf.String()
 }
 
-var gofmtBuf bytes.Buffer
+var gofmtBuf strings.Builder
 
 // gofmt returns the gofmt-formatted string for an AST node.
 func gofmt(n interface{}) string {
index 6a224598cc960cb849c7efbfb0d0ab030cccfabe..95223588252b2806590992dd603bc33e464af048 100644 (file)
@@ -43,7 +43,7 @@ func (p *Package) writeDefs() {
        }
        fm := creat(*objDir + "_cgo_main.c")
 
-       var gccgoInit bytes.Buffer
+       var gccgoInit strings.Builder
 
        fflg := creat(*objDir + "_cgo_flags")
        for k, v := range p.CgoFlags {
@@ -438,7 +438,7 @@ func checkImportSymName(s string) {
 // Also assumes that gc convention is to word-align the
 // input and output parameters.
 func (p *Package) structType(n *Name) (string, int64) {
-       var buf bytes.Buffer
+       var buf strings.Builder
        fmt.Fprint(&buf, "struct {\n")
        off := int64(0)
        for i, t := range n.FuncType.Params {
@@ -1114,7 +1114,7 @@ func (p *Package) writeGccgoExports(fgo2, fm, fgcc, fgcch io.Writer) {
                fn := exp.Func
                fntype := fn.Type
 
-               cdeclBuf := new(bytes.Buffer)
+               cdeclBuf := new(strings.Builder)
                resultCount := 0
                forFieldList(fntype.Results,
                        func(i int, aname string, atype ast.Expr) { resultCount++ })
@@ -1146,7 +1146,7 @@ func (p *Package) writeGccgoExports(fgo2, fm, fgcc, fgcch io.Writer) {
 
                cRet := cdeclBuf.String()
 
-               cdeclBuf = new(bytes.Buffer)
+               cdeclBuf = new(strings.Builder)
                fmt.Fprintf(cdeclBuf, "(")
                if fn.Recv != nil {
                        fmt.Fprintf(cdeclBuf, "%s recv", p.cgoType(fn.Recv.List[0].Type).C.String())