From: Bennet Bleßmann Date: Sat, 6 Jul 2024 11:07:26 +0000 (+0200) Subject: clippy: ptr dereference in safe function X-Git-Tag: v0.10.0~127^2~25 X-Git-Url: https://git.sagredo.dev/?a=commitdiff_plain;h=8943962704b5a63abd7ced170df202a0aeba2466;p=scryer-prolog.git clippy: ptr dereference in safe function --- 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)) }