2020#include <unistd.h>
2121#include <sys/types.h>
2222#include <sys/mman.h>
23+ #include <fcntl.h>
2324#endif
2425
2526struct rbs_allocator {
@@ -28,25 +29,19 @@ struct rbs_allocator {
2829};
2930
3031static void * portable_mmap_anon (size_t size ) {
31- void * ptr ;
32-
33- #ifdef _WIN32
34- ptr = VirtualAlloc (NULL , size , MEM_RESERVE | MEM_COMMIT , PAGE_READWRITE );
35- if (ptr == NULL ) return NULL ;
36- #elif defined(MAP_ANONYMOUS )
37- ptr = mmap (NULL , size , PROT_READ | PROT_WRITE , MAP_PRIVATE | MAP_ANONYMOUS , -1 , 0 );
32+ #if defined(MAP_ANONYMOUS )
33+ return mmap (NULL , size , PROT_READ | PROT_WRITE , MAP_PRIVATE | MAP_ANONYMOUS , -1 , 0 );
3834#elif defined(MAP_ANON )
39- ptr = mmap (NULL , size , PROT_READ | PROT_WRITE , MAP_PRIVATE | MAP_ANON , -1 , 0 );
35+ return mmap (NULL , size , PROT_READ | PROT_WRITE , MAP_PRIVATE | MAP_ANON , -1 , 0 );
4036#else
4137 /* Fallback to /dev/zero for systems without anonymous mapping */
4238 int fd = open ("/dev/zero" , O_RDWR );
43- if (fd == -1 ) return MAP_FAILED ;
39+ rbs_assert (fd != -1 , "open('/dev/zero') failed" ) ;
4440
4541 ptr = mmap (NULL , size , PROT_READ | PROT_WRITE , MAP_PRIVATE , fd , 0 );
4642 close (fd ); /* Can close fd after mapping */
47- #endif
48-
4943 return ptr ;
44+ #endif
5045}
5146
5247static size_t get_system_page_size (void ) {
0 commit comments