cmd/cloner,*: optimize nillable slice cloner

A wild @josharian appears with a good suggestion for a refactor, thanks
Josh!

Updates #9410
Signed-off-by: James Tucker <james@tailscale.com>
This commit is contained in:
James Tucker
2023-09-29 17:29:17 -07:00
committed by James Tucker
parent e91e96dfa5
commit ee90cd02fd
5 changed files with 34 additions and 58 deletions

View File

@@ -24,11 +24,9 @@ func (src *Config) Clone() *Config {
*dst = *src
dst.Addresses = append(src.Addresses[:0:0], src.Addresses...)
dst.DNS = append(src.DNS[:0:0], src.DNS...)
if src.Peers != nil {
dst.Peers = make([]Peer, len(src.Peers))
for i := range dst.Peers {
dst.Peers[i] = *src.Peers[i].Clone()
}
dst.Peers = append([]Peer(nil), make([]Peer, len(src.Peers))...)
for i := range dst.Peers {
dst.Peers[i] = *src.Peers[i].Clone()
}
return dst
}