Files
kubesphere/vendor/github.com/modern-go/reflect2/go_above_118.go
dongjiang 12af25f3f7 [release 3.2] cherry pick #6223 to release 3.2 (#6234)
cherry pick 6223 to release 3.2

Signed-off-by: dongjiang1989 <dongjiang1989@126.com>
2024-10-23 17:00:48 +08:00

23 lines
552 B
Go

//+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,
}
}