From dc3326c21dad5fc72eff6804d1c9b1d673a79a12 Mon Sep 17 00:00:00 2001 From: Christian Cunningham Date: Fri, 19 Aug 2022 23:35:18 -0700 Subject: Fixed allocation bug --- src/mem/alloc.rs | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) (limited to 'src/mem/alloc.rs') diff --git a/src/mem/alloc.rs b/src/mem/alloc.rs index 927c00d..65e85eb 100644 --- a/src/mem/alloc.rs +++ b/src/mem/alloc.rs @@ -198,7 +198,7 @@ unsafe impl GlobalAlloc for GrandAllocator { panic!("No cells to allocate!"); } Some(elem) => { - return &mut (*(*elem).inner() as u8) as *mut u8; + return (*elem).inner() as *mut u16 as *mut u8; } } } @@ -208,7 +208,7 @@ unsafe impl GlobalAlloc for GrandAllocator { panic!("No cells to allocate!"); } Some(elem) => { - return &mut (*(*elem).inner() as u8) as *mut u8; + return (*elem).inner() as *mut u32 as *mut u8; } } } @@ -218,7 +218,7 @@ unsafe impl GlobalAlloc for GrandAllocator { panic!("No cells to allocate!"); } Some(elem) => { - return &mut (*(*elem).inner() as u8) as *mut u8; + return (*elem).inner() as *mut u64 as *mut u8; } } } @@ -228,7 +228,7 @@ unsafe impl GlobalAlloc for GrandAllocator { panic!("No cells to allocate!"); } Some(elem) => { - return &mut (*(*elem).inner() as u8) as *mut u8; + return (*elem).inner() as *mut u128 as *mut u8; } } } @@ -254,7 +254,7 @@ unsafe impl GlobalAlloc for GrandAllocator { 2 => { U16_GRAND_ALLOC.inner.lock(|pool| { for idx in 2..pool.len() { - if &mut (*pool[idx].inner() as u8) as *mut u8 == ptr { + if pool[idx].inner() as *mut u16 as *mut u8 == ptr { U16_GRAND_ALLOC.free(&mut pool[idx]); return; } @@ -265,7 +265,7 @@ unsafe impl GlobalAlloc for GrandAllocator { 4 => { U32_GRAND_ALLOC.inner.lock(|pool| { for idx in 2..pool.len() { - if &mut (*pool[idx].inner() as u8) as *mut u8 == ptr { + if pool[idx].inner() as *mut u32 as *mut u8 == ptr { U32_GRAND_ALLOC.free(&mut pool[idx]); return; } @@ -276,7 +276,7 @@ unsafe impl GlobalAlloc for GrandAllocator { 8 => { U64_GRAND_ALLOC.inner.lock(|pool| { for idx in 2..pool.len() { - if &mut (*pool[idx].inner() as u8) as *mut u8 == ptr { + if pool[idx].inner() as *mut u64 as *mut u8 == ptr { U64_GRAND_ALLOC.free(&mut pool[idx]); return; } @@ -287,7 +287,7 @@ unsafe impl GlobalAlloc for GrandAllocator { 16 => { U128_GRAND_ALLOC.inner.lock(|pool| { for idx in 2..pool.len() { - if &mut (*pool[idx].inner() as u8) as *mut u8 == ptr { + if pool[idx].inner() as *mut u128 as *mut u8 == ptr { U128_GRAND_ALLOC.free(&mut pool[idx]); return; } -- cgit v1.2.1