diff options
| -rw-r--r-- | src/mem/alloc.rs | 22 | 
1 files 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<T> 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<T> 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;  						} | 
