Replace region::protect by make_exec in cranelift-filetests
This commit is contained in:
committed by
Andrew Brown
parent
abb157315b
commit
35c6d869f5
@@ -5,8 +5,6 @@ use cranelift_codegen::isa::TargetIsa;
|
|||||||
use cranelift_codegen::{settings, Context};
|
use cranelift_codegen::{settings, Context};
|
||||||
use cranelift_native::builder as host_isa_builder;
|
use cranelift_native::builder as host_isa_builder;
|
||||||
use memmap::MmapMut;
|
use memmap::MmapMut;
|
||||||
use region;
|
|
||||||
use region::Protection;
|
|
||||||
|
|
||||||
/// Run a function on a host
|
/// Run a function on a host
|
||||||
pub struct FunctionRunner {
|
pub struct FunctionRunner {
|
||||||
@@ -66,7 +64,8 @@ impl FunctionRunner {
|
|||||||
.map_err(|e| e.to_string())?;
|
.map_err(|e| e.to_string())?;
|
||||||
let mut code_page =
|
let mut code_page =
|
||||||
MmapMut::map_anon(code_info.total_size as usize).map_err(|e| e.to_string())?;
|
MmapMut::map_anon(code_info.total_size as usize).map_err(|e| e.to_string())?;
|
||||||
let callable_fn: fn() -> bool = unsafe {
|
|
||||||
|
unsafe {
|
||||||
context.emit_to_memory(
|
context.emit_to_memory(
|
||||||
self.isa.as_ref(),
|
self.isa.as_ref(),
|
||||||
code_page.as_mut_ptr(),
|
code_page.as_mut_ptr(),
|
||||||
@@ -74,15 +73,11 @@ impl FunctionRunner {
|
|||||||
traps,
|
traps,
|
||||||
stackmaps,
|
stackmaps,
|
||||||
);
|
);
|
||||||
region::protect(
|
|
||||||
code_page.as_mut_ptr(),
|
|
||||||
code_page.len(),
|
|
||||||
Protection::ReadExecute,
|
|
||||||
)
|
|
||||||
.map_err(|e| e.to_string())?;
|
|
||||||
mem::transmute(code_page.as_mut_ptr())
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
let code_page = code_page.make_exec().map_err(|e| e.to_string())?;
|
||||||
|
let callable_fn: fn() -> bool = unsafe { mem::transmute(code_page.as_ptr()) };
|
||||||
|
|
||||||
// execute
|
// execute
|
||||||
match callable_fn() {
|
match callable_fn() {
|
||||||
true => Ok(()),
|
true => Ok(()),
|
||||||
|
|||||||
Reference in New Issue
Block a user