about summary refs log tree commit diff
diff options
context:
space:
mode:
authorBrian Anderson <banderson@mozilla.com>2012-02-09 21:27:50 -0800
committerBrian Anderson <banderson@mozilla.com>2012-02-09 21:27:50 -0800
commitdff256cd198b6575f5194abb059c1798b7198f6f (patch)
tree20aee8fd1961fbe26a71dae0a45ba600a68dee4c
parent81e1564a7d6097164ff914eb7e341f9fca42f1df (diff)
downloadrust-dff256cd198b6575f5194abb059c1798b7198f6f.tar.gz
rust-dff256cd198b6575f5194abb059c1798b7198f6f.zip
rt: Move valgrind stack configuration out of the hot path
-rw-r--r--src/rt/rust_task_thread.cpp4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/rt/rust_task_thread.cpp b/src/rt/rust_task_thread.cpp
index 87e8a616dfc..b42f1519933 100644
--- a/src/rt/rust_task_thread.cpp
+++ b/src/rt/rust_task_thread.cpp
@@ -389,12 +389,14 @@ rust_task_thread::prepare_c_stack() {
     I(this, !extra_c_stack);
     if (!cached_c_stack) {
         cached_c_stack = create_stack(kernel, C_STACK_SIZE);
+        config_valgrind_stack(cached_c_stack);
     }
 }
 
 void
 rust_task_thread::unprepare_c_stack() {
     if (extra_c_stack) {
+        unconfig_valgrind_stack(extra_c_stack);
         destroy_stack(kernel, extra_c_stack);
         extra_c_stack = NULL;
     }
@@ -412,7 +414,6 @@ rust_task_thread::borrow_c_stack() {
         your_stack = cached_c_stack;
         cached_c_stack = NULL;
     }
-    config_valgrind_stack(your_stack);
     return your_stack;
 }
 
@@ -420,7 +421,6 @@ rust_task_thread::borrow_c_stack() {
 void
 rust_task_thread::return_c_stack(stk_seg *stack) {
     I(this, !extra_c_stack);
-    unconfig_valgrind_stack(stack);
     if (!cached_c_stack) {
         cached_c_stack = stack;
     } else {