return
}
- ep := (*eface)(unsafe.Pointer(&ptr))
+ ep := efaceOf(&ptr)
t := ep._type
top := true
if p == nil || !cgoIsGoPointer(p) {
return
}
- aep := (*eface)(unsafe.Pointer(&arg))
+ aep := efaceOf(&arg)
switch aep._type.kind & kindMask {
case kindBool:
if t.kind&kindMask == kindUnsafePointer {
return
}
- ep := (*eface)(unsafe.Pointer(&val))
+ ep := efaceOf(&val)
t := ep._type
cgoCheckArg(t, ep.data, t.kind&kindDirectIface == 0, false, cgoResultFail)
}
stringEface interface{} = stringInterfacePtr("")
sliceEface interface{} = sliceInterfacePtr(nil)
- uint16Type *_type = (*eface)(unsafe.Pointer(&uint16Eface))._type
- uint32Type *_type = (*eface)(unsafe.Pointer(&uint32Eface))._type
- uint64Type *_type = (*eface)(unsafe.Pointer(&uint64Eface))._type
- stringType *_type = (*eface)(unsafe.Pointer(&stringEface))._type
- sliceType *_type = (*eface)(unsafe.Pointer(&sliceEface))._type
+ uint16Type *_type = efaceOf(&uint16Eface)._type
+ uint32Type *_type = efaceOf(&uint32Eface)._type
+ uint64Type *_type = efaceOf(&uint64Eface)._type
+ stringType *_type = efaceOf(&stringEface)._type
+ sliceType *_type = efaceOf(&sliceEface)._type
)
// The conv and assert functions below do very similar things.