github.com/mymmsc/gox@v1.3.33/util/reflect2/go_below_118.go (about) 1 //+build !go1.18 2 3 package reflect2 4 5 import ( 6 "unsafe" 7 ) 8 9 // m escapes into the return value, but the caller of mapiterinit 10 // doesn't let the return value escape. 11 //go:noescape 12 //go:linkname mapiterinit reflect.mapiterinit 13 func mapiterinit(rtype unsafe.Pointer, m unsafe.Pointer) (val *hiter) 14 15 func (type2 *UnsafeMapType) UnsafeIterate(obj unsafe.Pointer) MapIterator { 16 return &UnsafeMapIterator{ 17 hiter: mapiterinit(type2.rtype, *(*unsafe.Pointer)(obj)), 18 pKeyRType: type2.pKeyRType, 19 pElemRType: type2.pElemRType, 20 } 21 }