From 7e9aa6c3c2ae054e32dfcc7c5e4830ce7c4c6921 Mon Sep 17 00:00:00 2001 From: Brian Anderson Date: Mon, 27 Feb 2012 15:42:22 -0800 Subject: rt: Don't zero new stacks --- src/rt/rust_stack.h | 33 +++++---------------------------- 1 file changed, 5 insertions(+), 28 deletions(-) (limited to 'src/rt/rust_stack.h') 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 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 +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. -- cgit 1.4.1-3-g733a5