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 {
|
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 {
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue