Merge pull request #3951 from arnetheduck/munmap-ret-fix
Munmap ret fix
This commit is contained in:
commit
2fa1312035
1 changed files with 6 additions and 4 deletions
|
|
@ -49,7 +49,7 @@ when defined(emscripten):
|
||||||
proc mmap(adr: pointer, len: int, prot, flags, fildes: cint,
|
proc mmap(adr: pointer, len: int, prot, flags, fildes: cint,
|
||||||
off: int): pointer {.header: "<sys/mman.h>".}
|
off: int): pointer {.header: "<sys/mman.h>".}
|
||||||
|
|
||||||
proc munmap(adr: pointer, len: int) {.header: "<sys/mman.h>".}
|
proc munmap(adr: pointer, len: int): cint {.header: "<sys/mman.h>".}
|
||||||
|
|
||||||
proc osAllocPages(block_size: int): pointer {.inline.} =
|
proc osAllocPages(block_size: int): pointer {.inline.} =
|
||||||
let realSize = block_size + sizeof(EmscriptenMMapBlock) + PageSize + 1
|
let realSize = block_size + sizeof(EmscriptenMMapBlock) + PageSize + 1
|
||||||
|
|
@ -78,7 +78,7 @@ when defined(emscripten):
|
||||||
proc osDeallocPages(p: pointer, size: int) {.inline} =
|
proc osDeallocPages(p: pointer, size: int) {.inline} =
|
||||||
var mmapDescrPos = cast[ByteAddress](p) -% sizeof(EmscriptenMMapBlock)
|
var mmapDescrPos = cast[ByteAddress](p) -% sizeof(EmscriptenMMapBlock)
|
||||||
var mmapDescr = cast[EmscriptenMMapBlock](mmapDescrPos)
|
var mmapDescr = cast[EmscriptenMMapBlock](mmapDescrPos)
|
||||||
munmap(mmapDescr.realPointer, mmapDescr.realSize)
|
discard munmap(mmapDescr.realPointer, mmapDescr.realSize)
|
||||||
|
|
||||||
elif defined(posix):
|
elif defined(posix):
|
||||||
const
|
const
|
||||||
|
|
@ -90,6 +90,8 @@ elif defined(posix):
|
||||||
const MAP_ANONYMOUS = 0x1000
|
const MAP_ANONYMOUS = 0x1000
|
||||||
elif defined(solaris):
|
elif defined(solaris):
|
||||||
const MAP_ANONYMOUS = 0x100
|
const MAP_ANONYMOUS = 0x100
|
||||||
|
elif defined(linux):
|
||||||
|
const MAP_ANONYMOUS = 0x20'i32
|
||||||
else:
|
else:
|
||||||
var
|
var
|
||||||
MAP_ANONYMOUS {.importc: "MAP_ANONYMOUS", header: "<sys/mman.h>".}: cint
|
MAP_ANONYMOUS {.importc: "MAP_ANONYMOUS", header: "<sys/mman.h>".}: cint
|
||||||
|
|
@ -97,7 +99,7 @@ elif defined(posix):
|
||||||
proc mmap(adr: pointer, len: int, prot, flags, fildes: cint,
|
proc mmap(adr: pointer, len: int, prot, flags, fildes: cint,
|
||||||
off: int): pointer {.header: "<sys/mman.h>".}
|
off: int): pointer {.header: "<sys/mman.h>".}
|
||||||
|
|
||||||
proc munmap(adr: pointer, len: int) {.header: "<sys/mman.h>".}
|
proc munmap(adr: pointer, len: int): cint {.header: "<sys/mman.h>".}
|
||||||
|
|
||||||
proc osAllocPages(size: int): pointer {.inline.} =
|
proc osAllocPages(size: int): pointer {.inline.} =
|
||||||
result = mmap(nil, size, PROT_READ or PROT_WRITE,
|
result = mmap(nil, size, PROT_READ or PROT_WRITE,
|
||||||
|
|
@ -106,7 +108,7 @@ elif defined(posix):
|
||||||
raiseOutOfMem()
|
raiseOutOfMem()
|
||||||
|
|
||||||
proc osDeallocPages(p: pointer, size: int) {.inline} =
|
proc osDeallocPages(p: pointer, size: int) {.inline} =
|
||||||
when reallyOsDealloc: munmap(p, size)
|
when reallyOsDealloc: discard munmap(p, size)
|
||||||
|
|
||||||
elif defined(windows):
|
elif defined(windows):
|
||||||
const
|
const
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue