Browse Source

Correct `mmap` usage

gingerBill 3 years ago
parent
commit
16ca677c1f
1 changed files with 4 additions and 5 deletions
  1. 4 5
      core/mem/virtual/virtual_linux.odin

+ 4 - 5
core/mem/virtual/virtual_linux.odin

@@ -67,13 +67,12 @@ madvise :: proc "contextless" (addr: rawptr, length: uint, advice: c.int) -> c.i
 
 
 _reserve :: proc(size: uint) -> (data: []byte, err: Allocator_Error) {
+	MAP_FAILED := rawptr(uintptr(~0))
 	result := mmap(nil, size, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0)
-	if result == nil {
-		err = .Out_Of_Memory
-		return
+	if result == MAP_FAILED {
+		return nil, .Out_Of_Memory
 	}
-	data = ([^]byte)(result)[:size]
-	return
+	return ([^]byte)(result)[:size], nil
 }
 
 _commit :: proc(data: rawptr, size: uint) {