File tree Expand file tree Collapse file tree 1 file changed +15
-1
lines changed Expand file tree Collapse file tree 1 file changed +15
-1
lines changed Original file line number Diff line number Diff line change @@ -1801,6 +1801,21 @@ impl<T: Clone> SpecFromElem for T {
18011801 }
18021802}
18031803
1804+ impl SpecFromElem for i8 {
1805+ #[ inline]
1806+ fn from_elem ( elem : i8 , n : usize ) -> Vec < i8 > {
1807+ if elem == 0 {
1808+ return Vec { buf : RawVec :: with_capacity_zeroed ( n) , len : n } ;
1809+ }
1810+ unsafe {
1811+ let mut v = Vec :: with_capacity ( n) ;
1812+ ptr:: write_bytes ( v. as_mut_ptr ( ) , elem as u8 , n) ;
1813+ v. set_len ( n) ;
1814+ v
1815+ }
1816+ }
1817+ }
1818+
18041819impl SpecFromElem for u8 {
18051820 #[ inline]
18061821 fn from_elem ( elem : u8 , n : usize ) -> Vec < u8 > {
@@ -1845,7 +1860,6 @@ macro_rules! impl_is_zero {
18451860 } ;
18461861}
18471862
1848- impl_is_zero ! ( i8 , |x| x == 0 ) ;
18491863impl_is_zero ! ( i16 , |x| x == 0 ) ;
18501864impl_is_zero ! ( i32 , |x| x == 0 ) ;
18511865impl_is_zero ! ( i64 , |x| x == 0 ) ;
You can’t perform that action at this time.
0 commit comments