Skip to content

Commit b0abc2e

Browse files
committed
Use split_init
Signed-off-by: Alex Saveau <[email protected]>
1 parent 5ffdada commit b0abc2e

File tree

2 files changed

+8
-8
lines changed

2 files changed

+8
-8
lines changed

src/buffer.rs

+6-6
Original file line numberDiff line numberDiff line change
@@ -5,17 +5,17 @@
55
use core::mem::MaybeUninit;
66
use core::slice;
77

8-
/// Split an uninitialized byte slice into initialized and uninitialized parts.
8+
/// Split an uninitialized slice into initialized and uninitialized parts.
99
///
1010
/// # Safety
1111
///
12-
/// At least `init` bytes must be initialized.
12+
/// At least `init` items must be initialized.
1313
#[inline]
14-
pub(super) unsafe fn split_init(
15-
buf: &mut [MaybeUninit<u8>],
14+
pub(super) unsafe fn split_init<T>(
15+
buf: &mut [MaybeUninit<T>],
1616
init: usize,
17-
) -> (&mut [u8], &mut [MaybeUninit<u8>]) {
17+
) -> (&mut [T], &mut [MaybeUninit<T>]) {
1818
let (init, uninit) = buf.split_at_mut(init);
19-
let init = slice::from_raw_parts_mut(init.as_mut_ptr() as *mut u8, init.len());
19+
let init = slice::from_raw_parts_mut(init.as_mut_ptr().cast::<T>(), init.len());
2020
(init, uninit)
2121
}

src/event/epoll.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -437,6 +437,7 @@ fn test_epoll_layouts() {
437437

438438
mod buf {
439439
use super::Event;
440+
use crate::buffer::split_init;
440441
#[cfg(feature = "alloc")]
441442
use alloc::vec::Vec;
442443
use core::mem::MaybeUninit;
@@ -501,8 +502,7 @@ mod buf {
501502
}
502503

503504
unsafe fn filled(self, count: usize) -> Self::Out {
504-
let filled = &mut self[..count];
505-
unsafe { core::mem::transmute::<&mut [MaybeUninit<Event>], &mut [Event]>(filled) }
505+
unsafe { split_init(self, count) }.0
506506
}
507507
}
508508
}

0 commit comments

Comments
 (0)