rt: Do fewer stack canary checks
This commit is contained in:
parent
3bc4da96f1
commit
6443a7b513
@ -41,7 +41,6 @@ call_upcall_on_c_stack(void *args, void *fn_ptr) {
|
|||||||
do_sanity_check(task);
|
do_sanity_check(task);
|
||||||
rust_scheduler *sched = task->sched;
|
rust_scheduler *sched = task->sched;
|
||||||
sched->c_context.call_shim_on_c_stack(args, fn_ptr);
|
sched->c_context.call_shim_on_c_stack(args, fn_ptr);
|
||||||
do_sanity_check(task);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
extern "C" void record_sp(void *limit);
|
extern "C" void record_sp(void *limit);
|
||||||
@ -72,7 +71,6 @@ upcall_call_shim_on_c_stack(void *args, void *fn_ptr) {
|
|||||||
|
|
||||||
task = rust_scheduler::get_task();
|
task = rust_scheduler::get_task();
|
||||||
task->record_stack_limit();
|
task->record_stack_limit();
|
||||||
do_sanity_check(task);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**********************************************************************/
|
/**********************************************************************/
|
||||||
@ -411,6 +409,10 @@ upcall_vec_push(rust_vec** vp, type_desc* elt_ty, void* elt) {
|
|||||||
// because this upcall calls take glue
|
// because this upcall calls take glue
|
||||||
s_vec_push_args args = {vp, elt_ty, elt};
|
s_vec_push_args args = {vp, elt_ty, elt};
|
||||||
upcall_s_vec_push(&args);
|
upcall_s_vec_push(&args);
|
||||||
|
|
||||||
|
// Do the stack check to make sure this op, on the Rust stack, is behaving
|
||||||
|
rust_task *task = rust_scheduler::get_task();
|
||||||
|
task->check_stack_canary();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**********************************************************************
|
/**********************************************************************
|
||||||
@ -645,7 +647,7 @@ upcall_reset_stack_limit() {
|
|||||||
rust_task *task = rust_scheduler::get_task();
|
rust_task *task = rust_scheduler::get_task();
|
||||||
do_sanity_check(task);
|
do_sanity_check(task);
|
||||||
task->reset_stack_limit();
|
task->reset_stack_limit();
|
||||||
do_sanity_check(task);
|
task->check_stack_canary();
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
|
Loading…
Reference in New Issue
Block a user