diff options
| author | Daniel Micay <danielmicay@gmail.com> | 2013-07-02 19:51:39 -0400 |
|---|---|---|
| committer | Daniel Micay <danielmicay@gmail.com> | 2013-07-08 04:54:41 -0400 |
| commit | 90f1db10fa29eb6b91e22037f13130f854da1401 (patch) | |
| tree | ebaee526480dc5966e8b072d43dd607eb97a6cc8 /src/libstd | |
| parent | 0aedecf96b08c41ea481eaaebd4e5d2e2325d9c9 (diff) | |
| download | rust-90f1db10fa29eb6b91e22037f13130f854da1401.tar.gz rust-90f1db10fa29eb6b91e22037f13130f854da1401.zip | |
remove headers from exchange allocations
Diffstat (limited to 'src/libstd')
| -rw-r--r-- | src/libstd/reflect.rs | 8 | ||||
| -rw-r--r-- | src/libstd/repr.rs | 9 | ||||
| -rw-r--r-- | src/libstd/rt/global_heap.rs | 5 | ||||
| -rw-r--r-- | src/libstd/unstable/intrinsics.rs | 1 |
4 files changed, 20 insertions, 3 deletions
diff --git a/src/libstd/reflect.rs b/src/libstd/reflect.rs index 16ab4771d0d..9075133b086 100644 --- a/src/libstd/reflect.rs +++ b/src/libstd/reflect.rs @@ -248,6 +248,14 @@ impl<V:TyVisitor + MovePtr> TyVisitor for MovePtrAdaptor<V> { true } + #[cfg(not(stage0))] + fn visit_uniq_managed(&self, mtbl: uint, inner: *TyDesc) -> bool { + self.align_to::<~u8>(); + if ! self.inner.visit_uniq_managed(mtbl, inner) { return false; } + self.bump_past::<~u8>(); + true + } + fn visit_ptr(&self, mtbl: uint, inner: *TyDesc) -> bool { self.align_to::<*u8>(); if ! self.inner.visit_ptr(mtbl, inner) { return false; } diff --git a/src/libstd/repr.rs b/src/libstd/repr.rs index fdda65d3e95..dd5075f8e66 100644 --- a/src/libstd/repr.rs +++ b/src/libstd/repr.rs @@ -302,6 +302,15 @@ impl TyVisitor for ReprVisitor { fn visit_uniq(&self, mtbl: uint, inner: *TyDesc) -> bool { self.writer.write_char('~'); self.write_mut_qualifier(mtbl); + do self.get::<*c_void> |b| { + self.visit_ptr_inner(*b, inner); + } + } + + #[cfg(not(stage0))] + fn visit_uniq_managed(&self, mtbl: uint, inner: *TyDesc) -> bool { + self.writer.write_char('~'); + self.write_mut_qualifier(mtbl); do self.get::<&managed::raw::BoxRepr> |b| { let p = ptr::to_unsafe_ptr(&b.data) as *c_void; self.visit_ptr_inner(p, inner); diff --git a/src/libstd/rt/global_heap.rs b/src/libstd/rt/global_heap.rs index 0e5b6427357..54deb8924f5 100644 --- a/src/libstd/rt/global_heap.rs +++ b/src/libstd/rt/global_heap.rs @@ -80,9 +80,8 @@ pub unsafe fn exchange_malloc(td: *c_char, size: uintptr_t) -> *c_char { #[cfg(not(stage0), not(test))] #[lang="exchange_malloc"] #[inline] -pub unsafe fn exchange_malloc(align: u32, size: uintptr_t) -> *c_char { - let total_size = get_box_size(size as uint, align as uint); - malloc_raw(total_size as uint) as *c_char +pub unsafe fn exchange_malloc(_align: u32, size: uintptr_t) -> *c_char { + malloc_raw(size as uint) as *c_char } #[cfg(not(test))] diff --git a/src/libstd/unstable/intrinsics.rs b/src/libstd/unstable/intrinsics.rs index 97e3cba92db..ce5ccf2401d 100644 --- a/src/libstd/unstable/intrinsics.rs +++ b/src/libstd/unstable/intrinsics.rs @@ -91,6 +91,7 @@ pub trait TyVisitor { fn visit_box(&self, mtbl: uint, inner: *TyDesc) -> bool; fn visit_uniq(&self, mtbl: uint, inner: *TyDesc) -> bool; + fn visit_uniq_managed(&self, mtbl: uint, inner: *TyDesc) -> bool; fn visit_ptr(&self, mtbl: uint, inner: *TyDesc) -> bool; fn visit_rptr(&self, mtbl: uint, inner: *TyDesc) -> bool; |
