rollup merge of #17582 : kmcallister/gc-box

This commit is contained in:
Alex Crichton 2014-09-29 08:14:12 -07:00
commit e44393a953
5 changed files with 10 additions and 10 deletions

View file

@ -16,7 +16,7 @@ use core::raw;
#[inline]
#[deprecated]
pub fn get_box_size(body_size: uint, body_align: uint) -> uint {
let header_size = mem::size_of::<raw::Box<()>>();
let header_size = mem::size_of::<raw::GcBox<()>>();
let total_size = align_to(header_size, body_align) + body_size;
total_size
}

View file

@ -20,12 +20,12 @@
use mem;
/// The representation of a Rust managed box
pub struct Box<T> {
/// The representation of `std::gc::Gc`.
pub struct GcBox<T> {
pub ref_count: uint,
pub drop_glue: fn(ptr: *mut u8),
pub prev: *mut Box<T>,
pub next: *mut Box<T>,
pub prev: *mut GcBox<T>,
pub next: *mut GcBox<T>,
pub data: T,
}

View file

@ -277,7 +277,7 @@ impl<'a> TyVisitor for ReprVisitor<'a> {
fn visit_box(&mut self, mtbl: uint, inner: *const TyDesc) -> bool {
try!(self, self.writer.write("box(GC) ".as_bytes()));
self.write_mut_qualifier(mtbl);
self.get::<&raw::Box<()>>(|this, b| {
self.get::<&raw::GcBox<()>>(|this, b| {
let p = &b.data as *const () as *const u8;
this.visit_ptr_inner(p, inner)
})

View file

@ -24,7 +24,7 @@ use task::Task;
static RC_IMMORTAL : uint = 0x77777777;
pub type Box = raw::Box<()>;
pub type Box = raw::GcBox<()>;
pub struct MemoryRegion {
live_allocations: uint,
@ -32,7 +32,7 @@ pub struct MemoryRegion {
pub struct LocalHeap {
memory_region: MemoryRegion,
live_allocs: *mut raw::Box<()>,
live_allocs: *mut raw::GcBox<()>,
}
impl LocalHeap {
@ -161,7 +161,7 @@ impl LocalHeap {
}
unsafe fn each_live_alloc(&mut self, read_next_before: bool,
f: |&mut LocalHeap, alloc: *mut raw::Box<()>|) {
f: |&mut LocalHeap, alloc: *mut raw::GcBox<()>|) {
//! Walks the internal list of allocations
let mut alloc = self.live_allocs;

View file

@ -89,7 +89,7 @@ impl<T: Default + 'static> Default for Gc<T> {
}
}
impl<T: 'static> raw::Repr<*const raw::Box<T>> for Gc<T> {}
impl<T: 'static> raw::Repr<*const raw::GcBox<T>> for Gc<T> {}
impl<S: hash::Writer, T: hash::Hash<S> + 'static> hash::Hash<S> for Gc<T> {
fn hash(&self, s: &mut S) {