diff options
| author | Brian Anderson <banderson@mozilla.com> | 2012-02-08 21:42:04 -0800 |
|---|---|---|
| committer | Brian Anderson <banderson@mozilla.com> | 2012-02-09 19:00:16 -0800 |
| commit | ea76d3f454c53623fdd957b79a6652c7d1f2dcc8 (patch) | |
| tree | fc956e53733a79e7e147652895e693d42fef575c /src/rt/rust_upcall.cpp | |
| parent | 1e2fe4ab8f132e6e84568b050dfaaabdaeae0c43 (diff) | |
| download | rust-ea76d3f454c53623fdd957b79a6652c7d1f2dcc8.tar.gz rust-ea76d3f454c53623fdd957b79a6652c7d1f2dcc8.zip | |
rt: Add rust_task::call_on_c_stack
Diffstat (limited to 'src/rt/rust_upcall.cpp')
| -rw-r--r-- | src/rt/rust_upcall.cpp | 8 |
1 files changed, 3 insertions, 5 deletions
diff --git a/src/rt/rust_upcall.cpp b/src/rt/rust_upcall.cpp index c66b4370713..d12e7311303 100644 --- a/src/rt/rust_upcall.cpp +++ b/src/rt/rust_upcall.cpp @@ -47,8 +47,7 @@ inline void call_upcall_on_c_stack(void *args, void *fn_ptr) { check_stack_alignment(); rust_task *task = rust_task_thread::get_task(); - rust_task_thread *thread = task->thread; - thread->c_context.call_and_change_stacks(args, fn_ptr); + task->call_on_c_stack(args, fn_ptr); } extern "C" void record_sp(void *limit); @@ -69,11 +68,10 @@ upcall_call_shim_on_c_stack(void *args, void *fn_ptr) { // stack. record_sp(0); - rust_task_thread *thread = task->thread; try { - thread->c_context.call_and_change_stacks(args, fn_ptr); + task->call_on_c_stack(args, fn_ptr); } catch (...) { - A(thread, false, "Native code threw an exception"); + A(task->thread, false, "Native code threw an exception"); } task = rust_task_thread::get_task(); |
