From fa3950c7b74f17cabb6af90cb5a1b5bbc45bc8ba Mon Sep 17 00:00:00 2001 From: James Munns Date: Thu, 20 Nov 2025 14:55:36 +0100 Subject: [PATCH] Don't create an intermediate `&[u8]` when initializing Tlsf alloc --- src/tlsf.rs | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/tlsf.rs b/src/tlsf.rs index 37935d1..05664b9 100644 --- a/src/tlsf.rs +++ b/src/tlsf.rs @@ -61,8 +61,9 @@ impl Heap { let mut heap = self.heap.borrow_ref_mut(cs); assert!(!heap.1); heap.1 = true; - let block: &[u8] = core::slice::from_raw_parts(start_addr as *const u8, size); - heap.0.insert_free_block_ptr(block.into()); + let block: NonNull<[u8]> = + NonNull::slice_from_raw_parts(NonNull::new_unchecked(start_addr as *mut u8), size); + heap.0.insert_free_block_ptr(block); }); }