Fix CodeMemory::new(0)

This commit is contained in:
losfair
2019-08-22 11:57:58 -07:00
parent 86814a1920
commit 7491b360ac

View File

@ -137,13 +137,20 @@ impl CodeMemory {
#[cfg(unix)] #[cfg(unix)]
impl CodeMemory { impl CodeMemory {
pub fn new(size: usize) -> CodeMemory { pub fn new(size: usize) -> CodeMemory {
if size == 0 {
return CodeMemory {
ptr: std::ptr::null_mut(),
size: 0,
};
}
fn round_up_to_page_size(size: usize) -> usize { fn round_up_to_page_size(size: usize) -> usize {
(size + (4096 - 1)) & !(4096 - 1) (size + (4096 - 1)) & !(4096 - 1)
} }
let size = round_up_to_page_size(size); let size = round_up_to_page_size(size);
let ptr = unsafe { let ptr = unsafe {
mmap( mmap(
::std::ptr::null_mut(), std::ptr::null_mut(),
size, size,
PROT_READ | PROT_WRITE, PROT_READ | PROT_WRITE,
MAP_PRIVATE | MAP_ANON, MAP_PRIVATE | MAP_ANON,