diff options
| author | Patrick Walton <pcwalton@mimiga.net> | 2013-04-05 11:55:43 -0700 |
|---|---|---|
| committer | Patrick Walton <pcwalton@mimiga.net> | 2013-04-19 11:53:34 -0700 |
| commit | ca8e99fd78ab9b56c5bdc61027b032ad52c2ec8b (patch) | |
| tree | e3fef1f74bbfaa9ee6846c67941b9f2d8dab0b78 /src/rt/rust_stack.cpp | |
| parent | 2dbe20a5610c3244feab0db5ab20ff062dc91085 (diff) | |
| download | rust-ca8e99fd78ab9b56c5bdc61027b032ad52c2ec8b.tar.gz rust-ca8e99fd78ab9b56c5bdc61027b032ad52c2ec8b.zip | |
rt: Fix scalability problem with big stacks on 32 bit
Diffstat (limited to 'src/rt/rust_stack.cpp')
| -rw-r--r-- | src/rt/rust_stack.cpp | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/src/rt/rust_stack.cpp b/src/rt/rust_stack.cpp index 64ca256ff46..f07690a955e 100644 --- a/src/rt/rust_stack.cpp +++ b/src/rt/rust_stack.cpp @@ -13,6 +13,8 @@ #include "vg/valgrind.h" #include "vg/memcheck.h" +#include <cstdio> + #ifdef _LP64 const uintptr_t canary_value = 0xABCDABCDABCDABCD; #else @@ -61,6 +63,7 @@ create_stack(memory_region *region, size_t sz) { stk_seg *stk = (stk_seg *)region->malloc(total_sz, "stack"); memset(stk, 0, sizeof(stk_seg)); stk->end = (uintptr_t) &stk->data[sz]; + stk->is_big = 0; add_stack_canary(stk); register_valgrind_stack(stk); return stk; @@ -78,6 +81,7 @@ create_exchange_stack(rust_exchange_alloc *exchange, size_t sz) { stk_seg *stk = (stk_seg *)exchange->malloc(total_sz); memset(stk, 0, sizeof(stk_seg)); stk->end = (uintptr_t) &stk->data[sz]; + stk->is_big = 0; add_stack_canary(stk); register_valgrind_stack(stk); return stk; |
