Remove size_of == 1 case from fill
specialization.
This commit is contained in:
parent
eaf6f46359
commit
38383017d6
1 changed files with 2 additions and 14 deletions
|
@ -1,6 +1,3 @@
|
|||
use crate::mem::{size_of, transmute_copy};
|
||||
use crate::ptr::write_bytes;
|
||||
|
||||
pub(super) trait SpecFill<T> {
|
||||
fn spec_fill(&mut self, value: T);
|
||||
}
|
||||
|
@ -19,17 +16,8 @@ impl<T: Clone> SpecFill<T> for [T] {
|
|||
|
||||
impl<T: Copy> SpecFill<T> for [T] {
|
||||
fn spec_fill(&mut self, value: T) {
|
||||
if size_of::<T>() == 1 {
|
||||
// SAFETY: The size_of check above ensures that values are 1 byte wide, as required
|
||||
// for the transmute and write_bytes
|
||||
unsafe {
|
||||
let value: u8 = transmute_copy(&value);
|
||||
write_bytes(self.as_mut_ptr(), value, self.len());
|
||||
}
|
||||
} else {
|
||||
for item in self.iter_mut() {
|
||||
*item = value;
|
||||
}
|
||||
for item in self.iter_mut() {
|
||||
*item = value;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue