File tree Expand file tree Collapse file tree 1 file changed +1
-33
lines changed Expand file tree Collapse file tree 1 file changed +1
-33
lines changed Original file line number Diff line number Diff line change @@ -196,39 +196,7 @@ impl<T> TypedArena<T> {
196196
197197 pub fn alloc_from_iter < I : IntoIterator < Item =T > > ( & self , iter : I ) -> & [ T ] where T : Clone {
198198 assert ! ( mem:: size_of:: <T >( ) != 0 ) ;
199- let mut iter = iter. into_iter ( ) ;
200- let size_hint = iter. size_hint ( ) ;
201-
202- match size_hint {
203- ( min, Some ( max) ) if min == max => {
204- if min == 0 {
205- return & [ ] ;
206- }
207-
208- if !self . can_allocate ( min) {
209- self . grow ( min) ;
210- }
211-
212- let slice = self . ptr . get ( ) ;
213-
214- unsafe {
215- let mut ptr = self . ptr . get ( ) ;
216- for _ in 0 ..min {
217- // Write into uninitialized memory.
218- ptr:: write ( ptr, iter. next ( ) . unwrap ( ) ) ;
219- // Advance the pointer.
220- ptr = ptr. offset ( 1 ) ;
221- // Update the pointer per iteration so if `iter.next()` panics
222- // we destroy the correct amount
223- self . ptr . set ( ptr) ;
224- }
225- return slice:: from_raw_parts_mut ( slice, min) ;
226- }
227- }
228- _ => ( ) ,
229- }
230-
231- let vec: Vec < _ > = iter. collect ( ) ;
199+ let vec: Vec < _ > = iter. into_iter ( ) . collect ( ) ;
232200 if vec. is_empty ( ) {
233201 return & [ ]
234202 }
You can’t perform that action at this time.
0 commit comments