fix alignment for chan_handle structs; rust equiv is translated
to char[16], not struct{long,long}
This commit is contained in:
@@ -80,7 +80,7 @@ native mod rustrt {
|
|||||||
|
|
||||||
type rust_task =
|
type rust_task =
|
||||||
{id: task,
|
{id: task,
|
||||||
mutable notify_enabled: u32,
|
mutable notify_enabled: int,
|
||||||
mutable notify_chan: comm::chan<task_notification>,
|
mutable notify_chan: comm::chan<task_notification>,
|
||||||
mutable stack_ptr: *u8};
|
mutable stack_ptr: *u8};
|
||||||
|
|
||||||
@@ -318,7 +318,7 @@ fn unsafe_spawn_inner(-thunk: fn@(),
|
|||||||
// set up notifications if they are enabled.
|
// set up notifications if they are enabled.
|
||||||
alt notify {
|
alt notify {
|
||||||
some(c) {
|
some(c) {
|
||||||
(**task_ptr).notify_enabled = 1u32;;
|
(**task_ptr).notify_enabled = 1;
|
||||||
(**task_ptr).notify_chan = c;
|
(**task_ptr).notify_chan = c;
|
||||||
}
|
}
|
||||||
none { }
|
none { }
|
||||||
|
|||||||
@@ -44,7 +44,7 @@ struct frame_glue_fns {
|
|||||||
// library. This struct must agree with the std::task::rust_task record.
|
// library. This struct must agree with the std::task::rust_task record.
|
||||||
struct rust_task_user {
|
struct rust_task_user {
|
||||||
rust_task_id id;
|
rust_task_id id;
|
||||||
uint32_t notify_enabled; // this is way more bits than necessary, but it
|
intptr_t notify_enabled; // this is way more bits than necessary, but it
|
||||||
// simplifies the alignment.
|
// simplifies the alignment.
|
||||||
chan_handle notify_chan;
|
chan_handle notify_chan;
|
||||||
uintptr_t rust_sp; // Saved sp when not running.
|
uintptr_t rust_sp; // Saved sp when not running.
|
||||||
|
|||||||
Reference in New Issue
Block a user