ssa: set pointer directiface
This commit is contained in:
@@ -291,8 +291,13 @@ func IfacePtrData(i iface) unsafe.Pointer {
|
||||
if i.tab == nil {
|
||||
panic(errorString("invalid memory address or nil pointer dereference").Error())
|
||||
}
|
||||
if i.tab._type.Kind_&abi.KindDirectIface != 0 {
|
||||
return unsafe.Pointer(&i.data)
|
||||
switch i.tab._type.Kind() {
|
||||
case abi.Bool, abi.Int, abi.Int8, abi.Int16, abi.Int32, abi.Int64,
|
||||
abi.Uint, abi.Uint8, abi.Uint16, abi.Uint32, abi.Uint64, abi.Uintptr,
|
||||
abi.Float32, abi.Float64, abi.Array, abi.Struct:
|
||||
if isDirectIface(i.tab._type) {
|
||||
return unsafe.Pointer(&i.data)
|
||||
}
|
||||
}
|
||||
return i.data
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user