diff options
author | Unknwon <u@gogs.io> | 2019-10-23 23:03:17 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-10-23 23:03:17 -0700 |
commit | 613139e7bef81d3573e7988a47eb6765f3de347a (patch) | |
tree | 49de7277898d3ff47a122c072568edb8ed4c9ac9 /vendor/github.com/modern-go/reflect2/unsafe_field.go | |
parent | fb100dbf98f02e4c631d142ff0f52ec29ee2f00c (diff) |
Enable Go modules (#5835)
* Remove vendor
* Enable Go modules
* ci: add command to fetch dependencies
* ci: update setting
* ci: update settings
* Require Go 1.11
* Rename module name to gogs.io/gogs
Diffstat (limited to 'vendor/github.com/modern-go/reflect2/unsafe_field.go')
-rw-r--r-- | vendor/github.com/modern-go/reflect2/unsafe_field.go | 74 |
1 files changed, 0 insertions, 74 deletions
diff --git a/vendor/github.com/modern-go/reflect2/unsafe_field.go b/vendor/github.com/modern-go/reflect2/unsafe_field.go deleted file mode 100644 index 5eb53130..00000000 --- a/vendor/github.com/modern-go/reflect2/unsafe_field.go +++ /dev/null @@ -1,74 +0,0 @@ -package reflect2 - -import ( - "reflect" - "unsafe" -) - -type UnsafeStructField struct { - reflect.StructField - structType *UnsafeStructType - rtype unsafe.Pointer - ptrRType unsafe.Pointer -} - -func newUnsafeStructField(structType *UnsafeStructType, structField reflect.StructField) *UnsafeStructField { - return &UnsafeStructField{ - StructField: structField, - rtype: unpackEFace(structField.Type).data, - ptrRType: unpackEFace(reflect.PtrTo(structField.Type)).data, - structType: structType, - } -} - -func (field *UnsafeStructField) Offset() uintptr { - return field.StructField.Offset -} - -func (field *UnsafeStructField) Name() string { - return field.StructField.Name -} - -func (field *UnsafeStructField) PkgPath() string { - return field.StructField.PkgPath -} - -func (field *UnsafeStructField) Type() Type { - return field.structType.cfg.Type2(field.StructField.Type) -} - -func (field *UnsafeStructField) Tag() reflect.StructTag { - return field.StructField.Tag -} - -func (field *UnsafeStructField) Index() []int { - return field.StructField.Index -} - -func (field *UnsafeStructField) Anonymous() bool { - return field.StructField.Anonymous -} - -func (field *UnsafeStructField) Set(obj interface{}, value interface{}) { - objEFace := unpackEFace(obj) - assertType("StructField.SetIndex argument 1", field.structType.ptrRType, objEFace.rtype) - valueEFace := unpackEFace(value) - assertType("StructField.SetIndex argument 2", field.ptrRType, valueEFace.rtype) - field.UnsafeSet(objEFace.data, valueEFace.data) -} - -func (field *UnsafeStructField) UnsafeSet(obj unsafe.Pointer, value unsafe.Pointer) { - fieldPtr := add(obj, field.StructField.Offset, "same as non-reflect &v.field") - typedmemmove(field.rtype, fieldPtr, value) -} - -func (field *UnsafeStructField) Get(obj interface{}) interface{} { - objEFace := unpackEFace(obj) - assertType("StructField.GetIndex argument 1", field.structType.ptrRType, objEFace.rtype) - value := field.UnsafeGet(objEFace.data) - return packEFace(field.ptrRType, value) -} - -func (field *UnsafeStructField) UnsafeGet(obj unsafe.Pointer) unsafe.Pointer { - return add(obj, field.StructField.Offset, "same as non-reflect &v.field") -} |