1
Fork 0

core/syntax: Staging fixes

This commit is contained in:
Tim Chevalier 2013-02-04 17:41:43 -08:00
parent 4e45d7111c
commit 2f46b763da
2 changed files with 2 additions and 44 deletions

View file

@ -143,8 +143,8 @@ pub fn BufferHeader() -> BufferHeader {
// This is for protocols to associate extra data to thread around. // This is for protocols to associate extra data to thread around.
#[doc(hidden)] #[doc(hidden)]
#[cfg(stage0)] #[cfg(stage0)]
#[cfg(stage1)]
type Buffer<T> = { header: BufferHeader, data: T }; type Buffer<T> = { header: BufferHeader, data: T };
#[cfg(stage1)]
#[cfg(stage2)] #[cfg(stage2)]
pub struct Buffer<T> { pub struct Buffer<T> {
header: BufferHeader, header: BufferHeader,
@ -258,22 +258,8 @@ fn unibuffer<T: Owned>() -> ~Buffer<Packet<T>> {
} }
move b move b
} }
#[cfg(stage1)]
fn unibuffer<T>() -> ~Buffer<Packet<T>> {
let b = ~{
header: BufferHeader(),
data: Packet {
header: PacketHeader(),
payload: None,
}
};
unsafe {
b.data.header.buffer = reinterpret_cast(&b);
}
move b
}
#[doc(hidden)] #[doc(hidden)]
#[cfg(stage1)]
#[cfg(stage2)] #[cfg(stage2)]
fn unibuffer<T>() -> ~Buffer<Packet<T>> { fn unibuffer<T>() -> ~Buffer<Packet<T>> {
let b = ~Buffer { let b = ~Buffer {

View file

@ -355,34 +355,6 @@ pub impl protocol: gen_init {
})) }))
} }
#[cfg(stage0)]
fn gen_init_bounded(ext_cx: ext_ctxt) -> @ast::expr {
debug!("gen_init_bounded");
let buffer_fields = self.gen_buffer_init(ext_cx);
let buffer = quote_expr!(~{
header: ::pipes::BufferHeader(),
data: $buffer_fields,
});
let entangle_body = ext_cx.block_expr(
ext_cx.block(
self.states.map_to_vec(
|s| ext_cx.parse_stmt(
fmt!("data.%s.set_buffer(buffer)",
s.name))),
ext_cx.parse_expr(
fmt!("::ptr::addr_of(&(data.%s))",
self.states[0].name))));
quote_expr!({
let buffer = $buffer;
do ::pipes::entangle_buffer(move buffer) |buffer, data| {
$entangle_body
}
})
}
#[cfg(stage1)]
#[cfg(stage2)]
fn gen_init_bounded(ext_cx: ext_ctxt) -> @ast::expr { fn gen_init_bounded(ext_cx: ext_ctxt) -> @ast::expr {
debug!("gen_init_bounded"); debug!("gen_init_bounded");
let buffer_fields = self.gen_buffer_init(ext_cx); let buffer_fields = self.gen_buffer_init(ext_cx);