]> Cypherpunks repositories - gostls13.git/commitdiff
net/http: make use of maps.Clone for Transport.{Clone, RegisterProtocol}
authorJes Cok <xigua67damn@gmail.com>
Mon, 9 Sep 2024 16:26:41 +0000 (16:26 +0000)
committerGopher Robot <gobot@golang.org>
Tue, 10 Sep 2024 19:59:02 +0000 (19:59 +0000)
Not a big deal, maybe it's a bit clearer that it's cloning a map.

Change-Id: I7c85382a01df97d1f58109b2483061e6decdf03a
GitHub-Last-Rev: 7a88af7f56ab7ad017081187e226e901752fa8bc
GitHub-Pull-Request: golang/go#69357
Reviewed-on: https://go-review.googlesource.com/c/go/+/612015
Auto-Submit: Damien Neil <dneil@google.com>
Reviewed-by: Ian Lance Taylor <iant@google.com>
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Reviewed-by: Damien Neil <dneil@google.com>
src/net/http/transport.go

index 26900620f1a25c8ded5b4f5069d96642f3975860..ed7c2a52c2cfa354fbdfdc3c42a475c19d054977 100644 (file)
@@ -20,6 +20,7 @@ import (
        "internal/godebug"
        "io"
        "log"
+       "maps"
        "net"
        "net/http/httptrace"
        "net/http/internal/ascii"
@@ -349,9 +350,9 @@ func (t *Transport) Clone() *Transport {
                *t2.HTTP2 = *t.HTTP2
        }
        if !t.tlsNextProtoWasNil {
-               npm := map[string]func(authority string, c *tls.Conn) RoundTripper{}
-               for k, v := range t.TLSNextProto {
-                       npm[k] = v
+               npm := maps.Clone(t.TLSNextProto)
+               if npm == nil {
+                       npm = make(map[string]func(authority string, c *tls.Conn) RoundTripper)
                }
                t2.TLSNextProto = npm
        }
@@ -830,9 +831,9 @@ func (t *Transport) RegisterProtocol(scheme string, rt RoundTripper) {
        if _, exists := oldMap[scheme]; exists {
                panic("protocol " + scheme + " already registered")
        }
-       newMap := make(map[string]RoundTripper)
-       for k, v := range oldMap {
-               newMap[k] = v
+       newMap := maps.Clone(oldMap)
+       if newMap == nil {
+               newMap = make(map[string]RoundTripper)
        }
        newMap[scheme] = rt
        t.altProto.Store(newMap)