aboutsummaryrefslogtreecommitdiff
path: root/src/net/http/httptest
diff options
context:
space:
mode:
authorBrad Fitzpatrick <bradfitz@golang.org>2019-04-24 14:59:18 +0000
committerBenny Siegert <bsiegert@gmail.com>2019-04-24 18:43:11 +0000
commit13d0af4e704bee164f873701e326048bdaf23933 (patch)
treeb17ff70eae9526b1a8b8a6bdfda88e885057531f /src/net/http/httptest
parent2417b0d0067b192e7cca05c00d9874617607fa81 (diff)
downloadgo-13d0af4e704bee164f873701e326048bdaf23933.tar.xz
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 <bradfitz@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Ingo Oeser <nightlyone@googlemail.com> Reviewed-by: Benny Siegert <bsiegert@gmail.com>
Diffstat (limited to 'src/net/http/httptest')
-rw-r--r--src/net/http/httptest/recorder.go14
1 files changed, 2 insertions, 12 deletions
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",