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