diff options
Diffstat (limited to 'vendor/github.com/modern-go/reflect2')
| -rw-r--r-- | vendor/github.com/modern-go/reflect2/.travis.yml | 2 | ||||
| -rw-r--r-- | vendor/github.com/modern-go/reflect2/Gopkg.lock | 8 | ||||
| -rw-r--r-- | vendor/github.com/modern-go/reflect2/Gopkg.toml | 4 | ||||
| -rw-r--r-- | vendor/github.com/modern-go/reflect2/go_above_118.go | 23 | ||||
| -rw-r--r-- | vendor/github.com/modern-go/reflect2/go_above_17.go | 8 | ||||
| -rw-r--r-- | vendor/github.com/modern-go/reflect2/go_above_19.go | 3 | ||||
| -rw-r--r-- | vendor/github.com/modern-go/reflect2/go_below_118.go | 21 | ||||
| -rw-r--r-- | vendor/github.com/modern-go/reflect2/go_below_17.go | 9 | ||||
| -rw-r--r-- | vendor/github.com/modern-go/reflect2/go_below_19.go | 14 | ||||
| -rw-r--r-- | vendor/github.com/modern-go/reflect2/reflect2.go | 20 | ||||
| -rw-r--r-- | vendor/github.com/modern-go/reflect2/test.sh | 12 | ||||
| -rw-r--r-- | vendor/github.com/modern-go/reflect2/type_map.go | 51 | ||||
| -rw-r--r-- | vendor/github.com/modern-go/reflect2/unsafe_link.go | 26 | ||||
| -rw-r--r-- | vendor/github.com/modern-go/reflect2/unsafe_map.go | 8 | 
14 files changed, 80 insertions, 129 deletions
| diff --git a/vendor/github.com/modern-go/reflect2/.travis.yml b/vendor/github.com/modern-go/reflect2/.travis.yml index fbb43744d..b097728db 100644 --- a/vendor/github.com/modern-go/reflect2/.travis.yml +++ b/vendor/github.com/modern-go/reflect2/.travis.yml @@ -1,7 +1,7 @@  language: go  go: -  - 1.8.x +  - 1.9.x    - 1.x  before_install: diff --git a/vendor/github.com/modern-go/reflect2/Gopkg.lock b/vendor/github.com/modern-go/reflect2/Gopkg.lock index 2a3a69893..10ef81118 100644 --- a/vendor/github.com/modern-go/reflect2/Gopkg.lock +++ b/vendor/github.com/modern-go/reflect2/Gopkg.lock @@ -1,15 +1,9 @@  # This file is autogenerated, do not edit; changes may be undone by the next 'dep ensure'. -[[projects]] -  name = "github.com/modern-go/concurrent" -  packages = ["."] -  revision = "e0a39a4cb4216ea8db28e22a69f4ec25610d513a" -  version = "1.0.0" -  [solve-meta]    analyzer-name = "dep"    analyzer-version = 1 -  inputs-digest = "daee8a88b3498b61c5640056665b8b9eea062006f5e596bbb6a3ed9119a11ec7" +  input-imports = []    solver-name = "gps-cdcl"    solver-version = 1 diff --git a/vendor/github.com/modern-go/reflect2/Gopkg.toml b/vendor/github.com/modern-go/reflect2/Gopkg.toml index 2f4f4dbdc..a9bc5061b 100644 --- a/vendor/github.com/modern-go/reflect2/Gopkg.toml +++ b/vendor/github.com/modern-go/reflect2/Gopkg.toml @@ -26,10 +26,6 @@  ignored = [] -[[constraint]] -  name = "github.com/modern-go/concurrent" -  version = "1.0.0" -  [prune]    go-tests = true    unused-packages = true diff --git a/vendor/github.com/modern-go/reflect2/go_above_118.go b/vendor/github.com/modern-go/reflect2/go_above_118.go new file mode 100644 index 000000000..2b4116f6c --- /dev/null +++ b/vendor/github.com/modern-go/reflect2/go_above_118.go @@ -0,0 +1,23 @@ +//+build go1.18 + +package reflect2 + +import ( +	"unsafe" +) + +// m escapes into the return value, but the caller of mapiterinit +// doesn't let the return value escape. +//go:noescape +//go:linkname mapiterinit reflect.mapiterinit +func mapiterinit(rtype unsafe.Pointer, m unsafe.Pointer, it *hiter) + +func (type2 *UnsafeMapType) UnsafeIterate(obj unsafe.Pointer) MapIterator { +	var it hiter +	mapiterinit(type2.rtype, *(*unsafe.Pointer)(obj), &it) +	return &UnsafeMapIterator{ +		hiter:      &it, +		pKeyRType:  type2.pKeyRType, +		pElemRType: type2.pElemRType, +	} +}
\ No newline at end of file diff --git a/vendor/github.com/modern-go/reflect2/go_above_17.go b/vendor/github.com/modern-go/reflect2/go_above_17.go deleted file mode 100644 index 5c1cea868..000000000 --- a/vendor/github.com/modern-go/reflect2/go_above_17.go +++ /dev/null @@ -1,8 +0,0 @@ -//+build go1.7 - -package reflect2 - -import "unsafe" - -//go:linkname resolveTypeOff reflect.resolveTypeOff -func resolveTypeOff(rtype unsafe.Pointer, off int32) unsafe.Pointer diff --git a/vendor/github.com/modern-go/reflect2/go_above_19.go b/vendor/github.com/modern-go/reflect2/go_above_19.go index c7e3b7801..974f7685e 100644 --- a/vendor/github.com/modern-go/reflect2/go_above_19.go +++ b/vendor/github.com/modern-go/reflect2/go_above_19.go @@ -6,6 +6,9 @@ import (  	"unsafe"  ) +//go:linkname resolveTypeOff reflect.resolveTypeOff +func resolveTypeOff(rtype unsafe.Pointer, off int32) unsafe.Pointer +  //go:linkname makemap reflect.makemap  func makemap(rtype unsafe.Pointer, cap int) (m unsafe.Pointer) diff --git a/vendor/github.com/modern-go/reflect2/go_below_118.go b/vendor/github.com/modern-go/reflect2/go_below_118.go new file mode 100644 index 000000000..00003dbd7 --- /dev/null +++ b/vendor/github.com/modern-go/reflect2/go_below_118.go @@ -0,0 +1,21 @@ +//+build !go1.18 + +package reflect2 + +import ( +	"unsafe" +) + +// m escapes into the return value, but the caller of mapiterinit +// doesn't let the return value escape. +//go:noescape +//go:linkname mapiterinit reflect.mapiterinit +func mapiterinit(rtype unsafe.Pointer, m unsafe.Pointer) (val *hiter) + +func (type2 *UnsafeMapType) UnsafeIterate(obj unsafe.Pointer) MapIterator { +	return &UnsafeMapIterator{ +		hiter:      mapiterinit(type2.rtype, *(*unsafe.Pointer)(obj)), +		pKeyRType:  type2.pKeyRType, +		pElemRType: type2.pElemRType, +	} +}
\ No newline at end of file diff --git a/vendor/github.com/modern-go/reflect2/go_below_17.go b/vendor/github.com/modern-go/reflect2/go_below_17.go deleted file mode 100644 index 65a93c889..000000000 --- a/vendor/github.com/modern-go/reflect2/go_below_17.go +++ /dev/null @@ -1,9 +0,0 @@ -//+build !go1.7 - -package reflect2 - -import "unsafe" - -func resolveTypeOff(rtype unsafe.Pointer, off int32) unsafe.Pointer { -	return nil -} diff --git a/vendor/github.com/modern-go/reflect2/go_below_19.go b/vendor/github.com/modern-go/reflect2/go_below_19.go deleted file mode 100644 index b050ef70c..000000000 --- a/vendor/github.com/modern-go/reflect2/go_below_19.go +++ /dev/null @@ -1,14 +0,0 @@ -//+build !go1.9 - -package reflect2 - -import ( -	"unsafe" -) - -//go:linkname makemap reflect.makemap -func makemap(rtype unsafe.Pointer) (m unsafe.Pointer) - -func makeMapWithSize(rtype unsafe.Pointer, cap int) unsafe.Pointer { -	return makemap(rtype) -} diff --git a/vendor/github.com/modern-go/reflect2/reflect2.go b/vendor/github.com/modern-go/reflect2/reflect2.go index 63b49c799..c43c8b9d6 100644 --- a/vendor/github.com/modern-go/reflect2/reflect2.go +++ b/vendor/github.com/modern-go/reflect2/reflect2.go @@ -1,8 +1,9 @@  package reflect2  import ( -	"github.com/modern-go/concurrent"  	"reflect" +	"runtime" +	"sync"  	"unsafe"  ) @@ -130,13 +131,13 @@ var ConfigSafe = Config{UseSafeImplementation: true}.Froze()  type frozenConfig struct {  	useSafeImplementation bool -	cache                 *concurrent.Map +	cache                 *sync.Map  }  func (cfg Config) Froze() *frozenConfig {  	return &frozenConfig{  		useSafeImplementation: cfg.UseSafeImplementation, -		cache: concurrent.NewMap(), +		cache:                 new(sync.Map),  	}  } @@ -288,11 +289,12 @@ func NoEscape(p unsafe.Pointer) unsafe.Pointer {  }  func UnsafeCastString(str string) []byte { +	bytes := make([]byte, 0)  	stringHeader := (*reflect.StringHeader)(unsafe.Pointer(&str)) -	sliceHeader := &reflect.SliceHeader{ -		Data: stringHeader.Data, -		Cap: stringHeader.Len, -		Len: stringHeader.Len, -	} -	return *(*[]byte)(unsafe.Pointer(sliceHeader)) +	sliceHeader := (*reflect.SliceHeader)(unsafe.Pointer(&bytes)) +	sliceHeader.Data = stringHeader.Data +	sliceHeader.Cap = stringHeader.Len +	sliceHeader.Len = stringHeader.Len +	runtime.KeepAlive(str) +	return bytes  } diff --git a/vendor/github.com/modern-go/reflect2/test.sh b/vendor/github.com/modern-go/reflect2/test.sh deleted file mode 100644 index 3d2b9768c..000000000 --- a/vendor/github.com/modern-go/reflect2/test.sh +++ /dev/null @@ -1,12 +0,0 @@ -#!/usr/bin/env bash - -set -e -echo "" > coverage.txt - -for d in $(go list github.com/modern-go/reflect2-tests/... | grep -v vendor); do -    go test -coverprofile=profile.out -coverpkg=github.com/modern-go/reflect2 $d -    if [ -f profile.out ]; then -        cat profile.out >> coverage.txt -        rm profile.out -    fi -done diff --git a/vendor/github.com/modern-go/reflect2/type_map.go b/vendor/github.com/modern-go/reflect2/type_map.go index 3acfb5580..4b13c3155 100644 --- a/vendor/github.com/modern-go/reflect2/type_map.go +++ b/vendor/github.com/modern-go/reflect2/type_map.go @@ -1,17 +1,13 @@ +// +build !gccgo +  package reflect2  import (  	"reflect" -	"runtime" -	"strings"  	"sync"  	"unsafe"  ) -// typelinks1 for 1.5 ~ 1.6 -//go:linkname typelinks1 reflect.typelinks -func typelinks1() [][]unsafe.Pointer -  // typelinks2 for 1.7 ~  //go:linkname typelinks2 reflect.typelinks  func typelinks2() (sections []unsafe.Pointer, offset [][]int32) @@ -27,49 +23,10 @@ func discoverTypes() {  	types = make(map[string]reflect.Type)  	packages = make(map[string]map[string]reflect.Type) -	ver := runtime.Version() -	if ver == "go1.5" || strings.HasPrefix(ver, "go1.5.") { -		loadGo15Types() -	} else if ver == "go1.6" || strings.HasPrefix(ver, "go1.6.") { -		loadGo15Types() -	} else { -		loadGo17Types() -	} -} - -func loadGo15Types() { -	var obj interface{} = reflect.TypeOf(0) -	typePtrss := typelinks1() -	for _, typePtrs := range typePtrss { -		for _, typePtr := range typePtrs { -			(*emptyInterface)(unsafe.Pointer(&obj)).word = typePtr -			typ := obj.(reflect.Type) -			if typ.Kind() == reflect.Ptr && typ.Elem().Kind() == reflect.Struct { -				loadedType := typ.Elem() -				pkgTypes := packages[loadedType.PkgPath()] -				if pkgTypes == nil { -					pkgTypes = map[string]reflect.Type{} -					packages[loadedType.PkgPath()] = pkgTypes -				} -				types[loadedType.String()] = loadedType -				pkgTypes[loadedType.Name()] = loadedType -			} -			if typ.Kind() == reflect.Slice && typ.Elem().Kind() == reflect.Ptr && -				typ.Elem().Elem().Kind() == reflect.Struct { -				loadedType := typ.Elem().Elem() -				pkgTypes := packages[loadedType.PkgPath()] -				if pkgTypes == nil { -					pkgTypes = map[string]reflect.Type{} -					packages[loadedType.PkgPath()] = pkgTypes -				} -				types[loadedType.String()] = loadedType -				pkgTypes[loadedType.Name()] = loadedType -			} -		} -	} +	loadGoTypes()  } -func loadGo17Types() { +func loadGoTypes() {  	var obj interface{} = reflect.TypeOf(0)  	sections, offset := typelinks2()  	for i, offs := range offset { diff --git a/vendor/github.com/modern-go/reflect2/unsafe_link.go b/vendor/github.com/modern-go/reflect2/unsafe_link.go index 57229c8db..b49f614ef 100644 --- a/vendor/github.com/modern-go/reflect2/unsafe_link.go +++ b/vendor/github.com/modern-go/reflect2/unsafe_link.go @@ -19,18 +19,12 @@ func typedslicecopy(elemType unsafe.Pointer, dst, src sliceHeader) int  //go:linkname mapassign reflect.mapassign  //go:noescape -func mapassign(rtype unsafe.Pointer, m unsafe.Pointer, key, val unsafe.Pointer) +func mapassign(rtype unsafe.Pointer, m unsafe.Pointer, key unsafe.Pointer, val unsafe.Pointer)  //go:linkname mapaccess reflect.mapaccess  //go:noescape  func mapaccess(rtype unsafe.Pointer, m unsafe.Pointer, key unsafe.Pointer) (val unsafe.Pointer) -// m escapes into the return value, but the caller of mapiterinit -// doesn't let the return value escape. -//go:noescape -//go:linkname mapiterinit reflect.mapiterinit -func mapiterinit(rtype unsafe.Pointer, m unsafe.Pointer) *hiter -  //go:noescape  //go:linkname mapiternext reflect.mapiternext  func mapiternext(it *hiter) @@ -42,9 +36,21 @@ func ifaceE2I(rtype unsafe.Pointer, src interface{}, dst unsafe.Pointer)  // If you modify hiter, also change cmd/internal/gc/reflect.go to indicate  // the layout of this structure.  type hiter struct { -	key   unsafe.Pointer // Must be in first position.  Write nil to indicate iteration end (see cmd/internal/gc/range.go). -	value unsafe.Pointer // Must be in second position (see cmd/internal/gc/range.go). -	// rest fields are ignored +	key         unsafe.Pointer +	value       unsafe.Pointer +	t           unsafe.Pointer +	h           unsafe.Pointer +	buckets     unsafe.Pointer +	bptr        unsafe.Pointer +	overflow    *[]unsafe.Pointer +	oldoverflow *[]unsafe.Pointer +	startBucket uintptr +	offset      uint8 +	wrapped     bool +	B           uint8 +	i           uint8 +	bucket      uintptr +	checkBucket uintptr  }  // add returns p+x. diff --git a/vendor/github.com/modern-go/reflect2/unsafe_map.go b/vendor/github.com/modern-go/reflect2/unsafe_map.go index f2e76e6bb..37872da81 100644 --- a/vendor/github.com/modern-go/reflect2/unsafe_map.go +++ b/vendor/github.com/modern-go/reflect2/unsafe_map.go @@ -107,14 +107,6 @@ func (type2 *UnsafeMapType) Iterate(obj interface{}) MapIterator {  	return type2.UnsafeIterate(objEFace.data)  } -func (type2 *UnsafeMapType) UnsafeIterate(obj unsafe.Pointer) MapIterator { -	return &UnsafeMapIterator{ -		hiter:      mapiterinit(type2.rtype, *(*unsafe.Pointer)(obj)), -		pKeyRType:  type2.pKeyRType, -		pElemRType: type2.pElemRType, -	} -} -  type UnsafeMapIterator struct {  	*hiter  	pKeyRType  unsafe.Pointer | 
