From 917073ec51151596e54fb063b943aab20e584336 Mon Sep 17 00:00:00 2001 From: Christian Cunningham Date: Fri, 19 Aug 2022 23:39:20 -0700 Subject: Simplified Allocator statements --- src/mem/alloc.rs | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/src/mem/alloc.rs b/src/mem/alloc.rs index 65e85eb..74f5f1d 100644 --- a/src/mem/alloc.rs +++ b/src/mem/alloc.rs @@ -43,6 +43,10 @@ impl QueueItem<'_,T> { pub fn inner(&mut self) -> &mut T { &mut self.data } + /// # Get pointer to inner data + pub fn ptr(&mut self) -> *mut u8 { + self.inner() as *mut T as *mut u8 + } } /// # Sharing Thread Safety for QueueItem unsafe impl Send for QueueItem<'_,T> {} @@ -188,7 +192,7 @@ unsafe impl GlobalAlloc for GrandAllocator { panic!("No cells to allocate!"); } Some(elem) => { - return (*elem).inner() as *mut u8; + return (*elem).ptr(); } } } @@ -198,7 +202,7 @@ unsafe impl GlobalAlloc for GrandAllocator { panic!("No cells to allocate!"); } Some(elem) => { - return (*elem).inner() as *mut u16 as *mut u8; + return (*elem).ptr(); } } } @@ -208,7 +212,7 @@ unsafe impl GlobalAlloc for GrandAllocator { panic!("No cells to allocate!"); } Some(elem) => { - return (*elem).inner() as *mut u32 as *mut u8; + return (*elem).ptr(); } } } @@ -218,7 +222,7 @@ unsafe impl GlobalAlloc for GrandAllocator { panic!("No cells to allocate!"); } Some(elem) => { - return (*elem).inner() as *mut u64 as *mut u8; + return (*elem).ptr(); } } } @@ -228,7 +232,7 @@ unsafe impl GlobalAlloc for GrandAllocator { panic!("No cells to allocate!"); } Some(elem) => { - return (*elem).inner() as *mut u128 as *mut u8; + return (*elem).ptr(); } } } @@ -254,7 +258,7 @@ unsafe impl GlobalAlloc for GrandAllocator { 2 => { U16_GRAND_ALLOC.inner.lock(|pool| { for idx in 2..pool.len() { - if pool[idx].inner() as *mut u16 as *mut u8 == ptr { + if pool[idx].ptr() == ptr { U16_GRAND_ALLOC.free(&mut pool[idx]); return; } @@ -265,7 +269,7 @@ unsafe impl GlobalAlloc for GrandAllocator { 4 => { U32_GRAND_ALLOC.inner.lock(|pool| { for idx in 2..pool.len() { - if pool[idx].inner() as *mut u32 as *mut u8 == ptr { + if pool[idx].ptr() == ptr { U32_GRAND_ALLOC.free(&mut pool[idx]); return; } @@ -276,7 +280,7 @@ unsafe impl GlobalAlloc for GrandAllocator { 8 => { U64_GRAND_ALLOC.inner.lock(|pool| { for idx in 2..pool.len() { - if pool[idx].inner() as *mut u64 as *mut u8 == ptr { + if pool[idx].ptr() == ptr { U64_GRAND_ALLOC.free(&mut pool[idx]); return; } @@ -287,7 +291,7 @@ unsafe impl GlobalAlloc for GrandAllocator { 16 => { U128_GRAND_ALLOC.inner.lock(|pool| { for idx in 2..pool.len() { - if pool[idx].inner() as *mut u128 as *mut u8 == ptr { + if pool[idx].ptr() == ptr { U128_GRAND_ALLOC.free(&mut pool[idx]); return; } -- cgit v1.2.1