aa8901e9bb
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/193497 From-SVN: r275473
23 lines
468 B
Go
23 lines
468 B
Go
// Copyright 2017 The Go Authors. All rights reserved.
|
|
// Use of this source code is governed by a BSD-style
|
|
// license that can be found in the LICENSE file.
|
|
|
|
// +build !go1.8
|
|
|
|
package sort
|
|
|
|
import "reflect"
|
|
|
|
var reflectValueOf = reflect.ValueOf
|
|
|
|
func reflectSwapper(x interface{}) func(int, int) {
|
|
v := reflectValueOf(x)
|
|
tmp := reflect.New(v.Type().Elem()).Elem()
|
|
return func(i, j int) {
|
|
a, b := v.Index(i), v.Index(j)
|
|
tmp.Set(a)
|
|
a.Set(b)
|
|
b.Set(tmp)
|
|
}
|
|
}
|