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