summaryrefslogtreecommitdiff
path: root/vendor/github.com/rogpeppe/go-internal/fmtsort/mapelem.go
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/github.com/rogpeppe/go-internal/fmtsort/mapelem.go')
-rw-r--r--vendor/github.com/rogpeppe/go-internal/fmtsort/mapelem.go20
1 files changed, 20 insertions, 0 deletions
diff --git a/vendor/github.com/rogpeppe/go-internal/fmtsort/mapelem.go b/vendor/github.com/rogpeppe/go-internal/fmtsort/mapelem.go
new file mode 100644
index 000000000..98e4e38f4
--- /dev/null
+++ b/vendor/github.com/rogpeppe/go-internal/fmtsort/mapelem.go
@@ -0,0 +1,20 @@
+package fmtsort
+
+import "reflect"
+
+const brokenNaNs = false
+
+func mapElems(mapValue reflect.Value) ([]reflect.Value, []reflect.Value) {
+ // Note: this code is arranged to not panic even in the presence
+ // of a concurrent map update. The runtime is responsible for
+ // yelling loudly if that happens. See issue 33275.
+ n := mapValue.Len()
+ key := make([]reflect.Value, 0, n)
+ value := make([]reflect.Value, 0, n)
+ iter := mapValue.MapRange()
+ for iter.Next() {
+ key = append(key, iter.Key())
+ value = append(value, iter.Value())
+ }
+ return key, value
+}