Fix build failure on Windows/386

The array size exceeds the address space of 32-bit platform.
See https://github.com/mattn/go-sqlite3/issues/238
This commit is contained in:
Mura Li 2018-10-24 00:09:35 +08:00
parent f3aa5ce899
commit d12a1386ff
1 changed files with 2 additions and 1 deletions

View File

@ -19,6 +19,7 @@ extern void unlock_notify_callback(void *arg, int argc);
import "C" import "C"
import ( import (
"fmt" "fmt"
"math"
"sync" "sync"
"unsafe" "unsafe"
) )
@ -59,7 +60,7 @@ func (t *unlock_notify_table) get(h uint) chan struct{} {
//export unlock_notify_callback //export unlock_notify_callback
func unlock_notify_callback(argv unsafe.Pointer, argc C.int) { func unlock_notify_callback(argv unsafe.Pointer, argc C.int) {
for i := 0; i < int(argc); i++ { for i := 0; i < int(argc); i++ {
parg := ((*(*[1 << 30]*[1]uint)(argv))[i]) parg := ((*(*[(math.MaxInt32 - 1) / unsafe.Sizeof(uintptr)]*[1]uint)(argv))[i])
arg := *parg arg := *parg
h := arg[0] h := arg[0]
c := unt.get(h) c := unt.get(h)