llvm2bytes: return nil slice if C array length is 0

This commit is contained in:
Paweł Bylica 2015-01-21 18:41:56 +01:00
parent 1b3aca8f26
commit 86ef96ab04

View file

@ -119,12 +119,13 @@ func llvm2big(m *i256) *big.Int {
}
func llvm2bytes(data *byte, length uint64) []byte {
hdr := reflect.SliceHeader{
Data: uintptr(unsafe.Pointer(data)),
Len: int(length),
Cap: int(length),
if length == 0 {
return nil
}
return *(*[]byte)(unsafe.Pointer(&hdr))
if data == nil {
panic("llvm2bytes: nil pointer to data")
}
return (*[1 << 30]byte)(unsafe.Pointer(data))[:length:length]
}
func NewJitVm(env Environment) *JitVm {