diff options
| -rw-r--r-- | src/libextra/arena.rs | 20 | ||||
| -rw-r--r-- | src/librustc/metadata/decoder.rs | 8 | ||||
| -rw-r--r-- | src/librustc/middle/mem_categorization.rs | 2 | ||||
| -rw-r--r-- | src/librustc/middle/reachable.rs | 3 | ||||
| -rw-r--r-- | src/librustc/middle/resolve.rs | 4 |
5 files changed, 24 insertions, 13 deletions
diff --git a/src/libextra/arena.rs b/src/libextra/arena.rs index 79e09c32030..2f18b0562e0 100644 --- a/src/libextra/arena.rs +++ b/src/libextra/arena.rs @@ -229,15 +229,25 @@ impl Arena { fn alloc_nonpod_inner(&mut self, n_bytes: uint, align: uint) -> (*u8, *u8) { unsafe { - let head = transmute_mut_region(&mut self.head); + let start; + let end; + let tydesc_start; + let after_tydesc; + + { + let head = transmute_mut_region(&mut self.head); + + tydesc_start = head.fill; + after_tydesc = head.fill + sys::size_of::<*TyDesc>(); + start = round_up_to(after_tydesc, align); + end = start + n_bytes; + } - let tydesc_start = head.fill; - let after_tydesc = head.fill + sys::size_of::<*TyDesc>(); - let start = round_up_to(after_tydesc, align); - let end = start + n_bytes; if end > at_vec::capacity(self.head.data) { return self.alloc_nonpod_grow(n_bytes, align); } + + let head = transmute_mut_region(&mut self.head); head.fill = round_up_to(end, sys::pref_align_of::<*TyDesc>()); //debug!("idx = %u, size = %u, align = %u, fill = %u", diff --git a/src/librustc/metadata/decoder.rs b/src/librustc/metadata/decoder.rs index 2ebaa2b739f..ba8df3a6038 100644 --- a/src/librustc/metadata/decoder.rs +++ b/src/librustc/metadata/decoder.rs @@ -523,10 +523,10 @@ impl<'self> EachItemContext<'self> { Mod | ForeignMod | Trait | Impl => { continue = self.each_item_of_module(def_id); } - Freeze | Struct | UnsafeFn | Fn | PureFn | ForeignFn | - UnsafeStaticMethod | StaticMethod | PureStaticMethod | Type | - ForeignType | Variant | Enum | PublicField | PrivateField | - InheritedField => {} + ImmStatic | MutStatic | Struct | UnsafeFn | Fn | PureFn | + ForeignFn | UnsafeStaticMethod | StaticMethod | + PureStaticMethod | Type | ForeignType | Variant | Enum | + PublicField | PrivateField | InheritedField => {} } } diff --git a/src/librustc/middle/mem_categorization.rs b/src/librustc/middle/mem_categorization.rs index f93cb265d78..52c01fa7647 100644 --- a/src/librustc/middle/mem_categorization.rs +++ b/src/librustc/middle/mem_categorization.rs @@ -452,7 +452,7 @@ impl mem_categorization_ctxt { ast::def_trait(_) | ast::def_ty(_) | ast::def_prim_ty(_) | ast::def_ty_param(*) | ast::def_struct(*) | ast::def_typaram_binder(*) | ast::def_region(_) | - ast::def_label(_) | ast::def_self_ty(*) => { + ast::def_label(_) | ast::def_self_ty(*) | ast::def_method(*) => { @cmt_ { id:id, span:span, diff --git a/src/librustc/middle/reachable.rs b/src/librustc/middle/reachable.rs index fe7eccf9d59..88bd9c1f6f4 100644 --- a/src/librustc/middle/reachable.rs +++ b/src/librustc/middle/reachable.rs @@ -396,7 +396,8 @@ impl ReachableContext { // this properly would result in the necessity of computing *type* // reachability, which might result in a compile time loss. fn mark_destructors_reachable(&self) { - for self.tcx.destructor_for_type.each |_, destructor_def_id| { + for self.tcx.destructor_for_type.iter().advance + |(_, destructor_def_id)| { if destructor_def_id.crate == local_crate { self.reachable_symbols.insert(destructor_def_id.node); } diff --git a/src/librustc/middle/resolve.rs b/src/librustc/middle/resolve.rs index aa7033221cf..b2bfd9d1661 100644 --- a/src/librustc/middle/resolve.rs +++ b/src/librustc/middle/resolve.rs @@ -3240,8 +3240,8 @@ impl Resolver { pub fn add_exports_for_module(@mut self, exports2: &mut ~[Export2], module_: @mut Module) { - for module_.import_resolutions.iter().advance |ident, - importresolution| { + for module_.import_resolutions.iter().advance |(ident, + importresolution)| { if importresolution.privacy != Public { debug!("(computing exports) not reexporting private `%s`", self.session.str_of(*ident)); |
