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 { func llvm2bytes(data *byte, length uint64) []byte {
hdr := reflect.SliceHeader{ if length == 0 {
Data: uintptr(unsafe.Pointer(data)), return nil
Len: int(length),
Cap: int(length),
} }
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 { func NewJitVm(env Environment) *JitVm {