From 8943962704b5a63abd7ced170df202a0aeba2466 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Bennet=20Ble=C3=9Fmann?= Date: Sat, 6 Jul 2024 13:07:26 +0200 Subject: [PATCH] clippy: ptr dereference in safe function --- src/arena.rs | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/arena.rs b/src/arena.rs index f88973dd..84e02e84 100644 --- a/src/arena.rs +++ b/src/arena.rs @@ -362,7 +362,8 @@ pub trait ArenaAllocated: Sized { }); let raw_box = Box::into_raw(slab); - let allocated_ptr = TypedAllocSlab::to_typed_arena_ptr(raw_box); + // safety: Box::into_raw retuns a pointer to a valid allocation + let allocated_ptr = unsafe { TypedAllocSlab::to_typed_arena_ptr(raw_box) }; arena.base = Some(NonNull::new(raw_box.cast::()).unwrap()); @@ -621,8 +622,10 @@ pub struct TypedAllocSlab { } impl TypedAllocSlab { + /// # Safety + /// - ptr points to a valid allocation of Self #[inline] - pub fn to_typed_arena_ptr(ptr: *mut Self) -> TypedArenaPtr { + pub unsafe fn to_typed_arena_ptr(ptr: *mut Self) -> TypedArenaPtr { // safety: // - this is the arena allocation of corresponding type unsafe { TypedArenaPtr::new(addr_of_mut!((*ptr).payload)) } -- 2.54.0