From ac85f2bedd405d64b54c3a248c9079b6cde57359 Mon Sep 17 00:00:00 2001 From: Mikhail Mazurskiy Date: Tue, 31 Oct 2023 00:17:18 +0000 Subject: [PATCH] net/url: use quick path in URL.Encode() on empty map Make url.Values.Encode() slightly more efficient when url.Values is an empty but non-nil map. Change-Id: I7f205cc7e67526a1fa0035eab4773cec5e0f2c99 GitHub-Last-Rev: 0530b439db8cea755464c6dc2d268a0bd567889e GitHub-Pull-Request: golang/go#63836 Reviewed-on: https://go-review.googlesource.com/c/go/+/538637 Reviewed-by: Damien Neil Reviewed-by: Bryan Mills LUCI-TryBot-Result: Go LUCI Auto-Submit: Damien Neil --- src/net/url/url.go | 2 +- src/net/url/url_test.go | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/src/net/url/url.go b/src/net/url/url.go index 2d40a58673..902310c244 100644 --- a/src/net/url/url.go +++ b/src/net/url/url.go @@ -970,7 +970,7 @@ func parseQuery(m Values, query string) (err error) { // Encode encodes the values into “URL encoded” form // ("bar=baz&foo=quux") sorted by key. func (v Values) Encode() string { - if v == nil { + if len(v) == 0 { return "" } var buf strings.Builder diff --git a/src/net/url/url_test.go b/src/net/url/url_test.go index 23c5c581c5..4aa20bb95f 100644 --- a/src/net/url/url_test.go +++ b/src/net/url/url_test.go @@ -1072,6 +1072,7 @@ type EncodeQueryTest struct { var encodeQueryTests = []EncodeQueryTest{ {nil, ""}, + {Values{}, ""}, {Values{"q": {"puppies"}, "oe": {"utf8"}}, "oe=utf8&q=puppies"}, {Values{"q": {"dogs", "&", "7"}}, "q=dogs&q=%26&q=7"}, {Values{ -- 2.44.0