From 13d0af4e704bee164f873701e326048bdaf23933 Mon Sep 17 00:00:00 2001 From: Brad Fitzpatrick Date: Wed, 24 Apr 2019 14:59:18 +0000 Subject: net/http: export Header.Clone, reduce its allocations, use it everywhere Fixes #29915 Change-Id: I6e6edf4f9a0e062211f74d120ae1a242bce1b274 Reviewed-on: https://go-review.googlesource.com/c/go/+/173658 Run-TryBot: Brad Fitzpatrick TryBot-Result: Gobot Gobot Reviewed-by: Ingo Oeser Reviewed-by: Benny Siegert --- src/net/http/httptest/recorder.go | 14 ++------------ 1 file changed, 2 insertions(+), 12 deletions(-) (limited to 'src/net/http/httptest') diff --git a/src/net/http/httptest/recorder.go b/src/net/http/httptest/recorder.go index 59c98adfe8..f2350f0a8d 100644 --- a/src/net/http/httptest/recorder.go +++ b/src/net/http/httptest/recorder.go @@ -127,17 +127,7 @@ func (rw *ResponseRecorder) WriteHeader(code int) { if rw.HeaderMap == nil { rw.HeaderMap = make(http.Header) } - rw.snapHeader = cloneHeader(rw.HeaderMap) -} - -func cloneHeader(h http.Header) http.Header { - h2 := make(http.Header, len(h)) - for k, vv := range h { - vv2 := make([]string, len(vv)) - copy(vv2, vv) - h2[k] = vv2 - } - return h2 + rw.snapHeader = rw.HeaderMap.Clone() } // Flush sets rw.Flushed to true. @@ -168,7 +158,7 @@ func (rw *ResponseRecorder) Result() *http.Response { return rw.result } if rw.snapHeader == nil { - rw.snapHeader = cloneHeader(rw.HeaderMap) + rw.snapHeader = rw.HeaderMap.Clone() } res := &http.Response{ Proto: "HTTP/1.1", -- cgit v1.3-6-g1900