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 @@ -1803,6 +1803,21 @@ impl<T: Clone> SpecFromElem for T {
18031803 }
18041804}
18051805
1806+ impl SpecFromElem for i8 {
1807+ #[ inline]
1808+ fn from_elem ( elem : i8 , n : usize ) -> Vec < i8 > {
1809+ if elem == 0 {
1810+ return Vec { buf : RawVec :: with_capacity_zeroed ( n) , len : n } ;
1811+ }
1812+ unsafe {
1813+ let mut v = Vec :: with_capacity ( n) ;
1814+ ptr:: write_bytes ( v. as_mut_ptr ( ) , elem as u8 , n) ;
1815+ v. set_len ( n) ;
1816+ v
1817+ }
1818+ }
1819+ }
1820+
18061821impl SpecFromElem for u8 {
18071822 #[ inline]
18081823 fn from_elem ( elem : u8 , n : usize ) -> Vec < u8 > {
@@ -1847,7 +1862,6 @@ macro_rules! impl_is_zero {
18471862 } ;
18481863}
18491864
1850- impl_is_zero ! ( i8 , |x| x == 0 ) ;
18511865impl_is_zero ! ( i16 , |x| x == 0 ) ;
18521866impl_is_zero ! ( i32 , |x| x == 0 ) ;
18531867impl_is_zero ! ( i64 , |x| x == 0 ) ;
You can’t perform that action at this time.
0 commit comments