diff options
| author | Brad Fitzpatrick <bradfitz@tailscale.com> | 2020-07-27 10:40:34 -0700 |
|---|---|---|
| committer | Brad Fitzpatrick <bradfitz@tailscale.com> | 2020-07-27 10:41:06 -0700 |
| commit | e6dbb4425ce4f0a6560b39143645dd1fbe66085b (patch) | |
| tree | ba026418dc6891b13306cacc86b84426b5aeb589 /cmd/cloner | |
| parent | 38b0c3eea27564af92416fa2cda9ae52f9aae08a (diff) | |
| download | tailscale-clone.tar.xz tailscale-clone.zip | |
cmd/cloner, tailcfg: fix nil vs len 0 issues, add tests, use for Hostinfoclone
Also use go:generate and https://golang.org/s/generatedcode header style.
Diffstat (limited to 'cmd/cloner')
| -rw-r--r-- | cmd/cloner/cloner.go | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/cmd/cloner/cloner.go b/cmd/cloner/cloner.go index a0bd04e6a..c7463b0f8 100644 --- a/cmd/cloner/cloner.go +++ b/cmd/cloner/cloner.go @@ -123,7 +123,7 @@ const header = `// Copyright (c) 2020 Tailscale Inc & AUTHORS All rights reserve // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -// AUTO-GENERATED by: tailscale.com/cmd/cloner -type %s +// Code generated by tailscale.com/cmd/cloner -type %s; DO NOT EDIT. package %s @@ -168,8 +168,8 @@ func gen(buf *bytes.Buffer, imports map[string]struct{}, name string, typ *types } switch ft := ft.Underlying().(type) { case *types.Slice: - n := importedName(ft.Elem()) if containsPointers(ft.Elem()) { + n := importedName(ft.Elem()) writef("dst.%s = make([]%s, len(src.%s))", fname, n, fname) writef("for i := range dst.%s {", fname) if _, isPtr := ft.Elem().(*types.Pointer); isPtr { @@ -179,7 +179,7 @@ func gen(buf *bytes.Buffer, imports map[string]struct{}, name string, typ *types } writef("}") } else { - writef("dst.%s = append([]%s(nil), src.%s...)", fname, n, fname) + writef("dst.%s = append(src.%s[:0:0], src.%s...)", fname, fname, fname) } case *types.Pointer: if named, _ := ft.Elem().(*types.Named); named != nil && containsPointers(ft.Elem()) { |
