aboutsummaryrefslogtreecommitdiff
path: root/libgo/go/expvar/expvar.go
diff options
context:
space:
mode:
authorIan Lance Taylor <iant@golang.org>2019-09-06 18:12:46 +0000
committerIan Lance Taylor <ian@gcc.gnu.org>2019-09-06 18:12:46 +0000
commitaa8901e9bb0399d2c16f988ba2fe46eb0c0c5d13 (patch)
tree7e63b06d1eec92beec6997c9d3ab47a5d6a835be /libgo/go/expvar/expvar.go
parent920ea3b8ba3164b61ac9490dfdfceb6936eda6dd (diff)
downloadgcc-aa8901e9bb0399d2c16f988ba2fe46eb0c0c5d13.zip
gcc-aa8901e9bb0399d2c16f988ba2fe46eb0c0c5d13.tar.gz
gcc-aa8901e9bb0399d2c16f988ba2fe46eb0c0c5d13.tar.bz2
libgo: update to Go 1.13beta1 release
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/193497 From-SVN: r275473
Diffstat (limited to 'libgo/go/expvar/expvar.go')
-rw-r--r--libgo/go/expvar/expvar.go10
1 files changed, 8 insertions, 2 deletions
diff --git a/libgo/go/expvar/expvar.go b/libgo/go/expvar/expvar.go
index 976b300..c0dc053 100644
--- a/libgo/go/expvar/expvar.go
+++ b/libgo/go/expvar/expvar.go
@@ -141,8 +141,14 @@ func (v *Map) Init() *Map {
func (v *Map) addKey(key string) {
v.keysMu.Lock()
defer v.keysMu.Unlock()
- v.keys = append(v.keys, key)
- sort.Strings(v.keys)
+ // Using insertion sort to place key into the already-sorted v.keys.
+ if i := sort.SearchStrings(v.keys, key); i >= len(v.keys) {
+ v.keys = append(v.keys, key)
+ } else if v.keys[i] != key {
+ v.keys = append(v.keys, "")
+ copy(v.keys[i+1:], v.keys[i:])
+ v.keys[i] = key
+ }
}
func (v *Map) Get(key string) Var {