mirror of
https://github.com/ethereum/go-ethereum.git
synced 2026-07-22 04:36:42 +00:00
llvm2bytes: return nil slice if C array length is 0
This commit is contained in:
parent
1b3aca8f26
commit
86ef96ab04
1 changed files with 6 additions and 5 deletions
11
vm/vm_jit.go
11
vm/vm_jit.go
|
|
@ -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 {
|
||||
|
|
|
|||
Loading…
Reference in a new issue