@@ -240,14 +240,7 @@ impl<'a, T: 'a> Iterator for Drain<'a,T> {
240
240
241
241
#[ inline]
242
242
fn next ( & mut self ) -> Option < T > {
243
- match self . iter . next ( ) {
244
- None => None ,
245
- Some ( reference) => {
246
- unsafe {
247
- Some ( ptr:: read ( reference) )
248
- }
249
- }
250
- }
243
+ self . iter . next ( ) . map ( |reference| unsafe { ptr:: read ( reference) } )
251
244
}
252
245
253
246
#[ inline]
@@ -259,14 +252,7 @@ impl<'a, T: 'a> Iterator for Drain<'a,T> {
259
252
impl < ' a , T : ' a > DoubleEndedIterator for Drain < ' a , T > {
260
253
#[ inline]
261
254
fn next_back ( & mut self ) -> Option < T > {
262
- match self . iter . next_back ( ) {
263
- None => None ,
264
- Some ( reference) => {
265
- unsafe {
266
- Some ( ptr:: read ( reference) )
267
- }
268
- }
269
- }
255
+ self . iter . next_back ( ) . map ( |reference| unsafe { ptr:: read ( reference) } )
270
256
}
271
257
}
272
258
@@ -602,26 +588,26 @@ impl<A: Array> SmallVec<A> {
602
588
pub fn grow ( & mut self , new_cap : usize ) {
603
589
unsafe {
604
590
let ( ptr, & mut len, cap) = self . triple_mut ( ) ;
605
- let spilled = self . spilled ( ) ;
591
+ let unspilled = ! self . spilled ( ) ;
606
592
assert ! ( new_cap >= len) ;
607
593
if new_cap <= self . inline_size ( ) {
608
- if !spilled {
594
+ if unspilled {
609
595
return ;
610
596
}
611
597
self . data = SmallVecData :: from_inline ( mem:: uninitialized ( ) ) ;
612
598
ptr:: copy_nonoverlapping ( ptr, self . data . inline_mut ( ) . ptr_mut ( ) , len) ;
613
- deallocate ( ptr, cap) ;
614
599
} else if new_cap != cap {
615
600
let mut vec = Vec :: with_capacity ( new_cap) ;
616
601
let new_alloc = vec. as_mut_ptr ( ) ;
617
602
mem:: forget ( vec) ;
618
603
ptr:: copy_nonoverlapping ( ptr, new_alloc, len) ;
619
604
self . data = SmallVecData :: from_heap ( new_alloc, len) ;
620
605
self . capacity = new_cap;
621
- if spilled {
622
- deallocate ( ptr , cap ) ;
606
+ if unspilled {
607
+ return ;
623
608
}
624
609
}
610
+ deallocate ( ptr, cap) ;
625
611
}
626
612
}
627
613
0 commit comments