diff --git a/compiler/rustc_arena/src/lib.rs b/compiler/rustc_arena/src/lib.rs index 97dd21db07e7..0785942d13a3 100644 --- a/compiler/rustc_arena/src/lib.rs +++ b/compiler/rustc_arena/src/lib.rs @@ -287,10 +287,9 @@ fn grow(&self, additional: usize) { // Also ensure that this chunk can fit `additional`. new_cap = cmp::max(additional, new_cap); - let mut chunk = ArenaChunk::::new(new_cap); + let chunk = chunks.push_mut(ArenaChunk::::new(new_cap)); self.ptr.set(chunk.start()); self.end.set(chunk.end()); - chunks.push(chunk); } } @@ -419,7 +418,7 @@ fn grow(&self, layout: Layout) { // Also ensure that this chunk can fit `additional`. new_cap = cmp::max(additional, new_cap); - let mut chunk = ArenaChunk::new(align_up(new_cap, PAGE)); + let chunk = chunks.push_mut(ArenaChunk::new(align_up(new_cap, PAGE))); self.start.set(chunk.start()); // Align the end to DROPLESS_ALIGNMENT. @@ -430,8 +429,6 @@ fn grow(&self, layout: Layout) { debug_assert!(chunk.start().addr() <= end); self.end.set(chunk.end().with_addr(end)); - - chunks.push(chunk); } } diff --git a/library/proc_macro/src/bridge/arena.rs b/library/proc_macro/src/bridge/arena.rs index 5e0393e98fdd..d4879021f9d8 100644 --- a/library/proc_macro/src/bridge/arena.rs +++ b/library/proc_macro/src/bridge/arena.rs @@ -58,11 +58,10 @@ fn grow(&self, additional: usize) { // Also ensure that this chunk can fit `additional`. new_cap = cmp::max(additional, new_cap); - let mut chunk = Box::new_uninit_slice(new_cap); + let chunk = chunks.push_mut(Box::new_uninit_slice(new_cap)); let Range { start, end } = chunk.as_mut_ptr_range(); self.start.set(start); self.end.set(end); - chunks.push(chunk); } /// Allocates a byte slice with specified size from the current memory