From 71f4aa701bc8f5df63598f4016c4cf391de61a94 Mon Sep 17 00:00:00 2001 From: Glenn Watson Date: Fri, 17 Oct 2014 08:50:17 +1000 Subject: [PATCH] When retrieving runtime in GC callback, don't require a green task. This means that when other runtimes are present (for example an instrumenting runtime wrapper for profiling) this code doesn't fail. --- src/rust.rs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/rust.rs b/src/rust.rs index 556a8d853..9ac226c6a 100644 --- a/src/rust.rs +++ b/src/rust.rs @@ -62,11 +62,11 @@ unsafe extern fn gc_callback(rt: *mut JSRuntime, _status: JSGCStatus) { use std::rt::task::Task; unsafe { let mut task = Local::borrow(None::); - let green_task: Box = task.maybe_take_runtime().unwrap(); - let (start, end) = green_task.stack_bounds(); + let runtime = task.take_runtime(); + let (start, end) = runtime.stack_bounds(); JS_SetNativeStackBounds(rt, cmp::min(start, end) as uintptr_t, cmp::max(start, end) as uintptr_t); - task.put_runtime(green_task); + task.put_runtime(runtime); } }