about summary refs log tree commit diff
path: root/src/rt/rust_task.cpp
diff options
context:
space:
mode:
authorBrian Anderson <banderson@mozilla.com>2011-12-15 14:46:12 -0800
committerBrian Anderson <banderson@mozilla.com>2011-12-16 18:18:43 -0800
commit23df4de86d8740545891a745f3c2f6c90cf1d1fd (patch)
treea59e11e0c18b3ecfb0ac941b0a46da7ab737620f /src/rt/rust_task.cpp
parentab4f35c1f1247bd745378621a22340cbf8b7030d (diff)
downloadrust-23df4de86d8740545891a745f3c2f6c90cf1d1fd.tar.gz
rust-23df4de86d8740545891a745f3c2f6c90cf1d1fd.zip
rt: Fix alignment of new stack segments
Diffstat (limited to 'src/rt/rust_task.cpp')
-rw-r--r--src/rt/rust_task.cpp6
1 files changed, 2 insertions, 4 deletions
diff --git a/src/rt/rust_task.cpp b/src/rt/rust_task.cpp
index ffcbcc1da5f..a95171951f6 100644
--- a/src/rt/rust_task.cpp
+++ b/src/rt/rust_task.cpp
@@ -596,10 +596,8 @@ rust_task::new_stack(size_t stk_sz, void *args_addr, size_t args_sz) {
     stk_seg *stk_seg = new_stk(sched, this, stk_sz + args_sz);
 
     uint8_t *new_sp = (uint8_t*)stk_seg->end;
-    size_t sizeof_retaddr = sizeof(void*);
-    // Make enough room on the new stack to hold the old stack pointer
-    // in addition to the function arguments
-    new_sp = align_down(new_sp - (args_sz + sizeof_retaddr));
+    // Push the function arguments to the new stack
+    new_sp = align_down(new_sp - args_sz);
     memcpy(new_sp, args_addr, args_sz);
     record_stack_limit();
     return new_sp;