about summary refs log tree commit diff
path: root/src/rt/rust_stack.h
diff options
context:
space:
mode:
authorBrian Anderson <banderson@mozilla.com>2012-02-27 15:42:22 -0800
committerBrian Anderson <banderson@mozilla.com>2012-02-27 16:13:51 -0800
commit7e9aa6c3c2ae054e32dfcc7c5e4830ce7c4c6921 (patch)
tree3e25c31b0deaf0ad38edb6f7b15a7505f0bc57be /src/rt/rust_stack.h
parentb3f77bf92703543793a8073c8319e461e024cb69 (diff)
downloadrust-7e9aa6c3c2ae054e32dfcc7c5e4830ce7c4c6921.tar.gz
rust-7e9aa6c3c2ae054e32dfcc7c5e4830ce7c4c6921.zip
rt: Don't zero new stacks
Diffstat (limited to 'src/rt/rust_stack.h')
-rw-r--r--src/rt/rust_stack.h33
1 files changed, 5 insertions, 28 deletions
diff --git a/src/rt/rust_stack.h b/src/rt/rust_stack.h
index e8be2f2c083..09a468ae5c9 100644
--- a/src/rt/rust_stack.h
+++ b/src/rt/rust_stack.h
@@ -1,6 +1,8 @@
 #ifndef RUST_STACK_H
 #define RUST_STACK_H
 
+#include "memory_region.h"
+
 struct stk_seg {
     stk_seg *prev;
     stk_seg *next;
@@ -15,36 +17,11 @@ struct stk_seg {
     uint8_t data[];
 };
 
-// Used by create_stack
-void
-register_valgrind_stack(stk_seg *stk);
-
-// Used by destroy_stack
-void
-deregister_valgrind_stack(stk_seg *stk);
-
-// Used by create_stack
-void
-add_stack_canary(stk_seg *stk);
-
-template <class T>
 stk_seg *
-create_stack(T allocer, size_t sz) {
-  size_t total_sz = sizeof(stk_seg) + sz;
-  stk_seg *stk = (stk_seg *)allocer->malloc(total_sz, "stack");
-  memset(stk, 0, sizeof(stk_seg));
-  stk->end = (uintptr_t) &stk->data[sz];
-  add_stack_canary(stk);
-  register_valgrind_stack(stk);
-  return stk;
-}
-
-template <class T>
+create_stack(memory_region *region, size_t sz);
+
 void
-destroy_stack(T allocer, stk_seg *stk) {
-  deregister_valgrind_stack(stk);
-  allocer->free(stk);
-}
+destroy_stack(memory_region *region, stk_seg *stk);
 
 // Must be called before each time a stack is reused to tell valgrind
 // that the stack is accessible.