Mercurial > repos > blastem
diff mem.c @ 1340:101b5ce682fe
Fix some inconsequential issues in code for executable memory allocation noticed while tracking down a different issue
author | Michael Pavone <pavone@retrodev.com> |
---|---|
date | Thu, 04 May 2017 21:00:25 -0700 |
parents | 6bafe1988e8c |
children | 8e86cd581620 |
line wrap: on
line diff
--- a/mem.c Wed May 03 21:28:40 2017 -0700 +++ b/mem.c Thu May 04 21:00:25 2017 -0700 @@ -30,8 +30,10 @@ if (ret) { return ret; } - *size += PAGE_SIZE - (*size & (PAGE_SIZE - 1)); - ret = mmap(NULL, *size, PROT_EXEC | PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_ANONYMOUS | MAP_32BIT, -1, 0); + if (*size & (PAGE_SIZE -1)) { + *size += PAGE_SIZE - (*size & (PAGE_SIZE - 1)); + } + ret = mmap(next, *size, PROT_EXEC | PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_ANONYMOUS | MAP_32BIT, -1, 0); if (ret == MAP_FAILED) { perror("alloc_code"); return NULL;