unsafe fn free(&mut self, allocation: &Allocation) -> Result<()> {
        if allocation.is_null() {
            Ok(())
        } else {
            let mut adjusted = allocation.clone();
            adjusted.offset -= self.offset();
            adjusted.byte_size += self.offset();
            self.allocator.free(&adjusted)
        }
    }
/// Undo the offset+size adjustments which were applied by [Self::allocate],
/// then use the underlying allocator to actually free the memory.
Undo the offset+size adjustments which were applied by [Self::allocate],
then use the underlying allocator to actually free the memory.
Undo the offset + size adjustments which were applied by [ Self :: allocate ] then use the underlying allocator to actually free the memory .
unsafe fn free(&mut self, allocation: &Allocation) -> Result<()> {
        if allocation.is_null() {
            Ok(())
        } else {
            let mut adjusted = allocation.clone();
            adjusted.offset -= self.offset();
            adjusted.byte_size += self.offset();
            self.allocator.free(&adjusted)
        }
    }
unsafe fn free ( & mut self , allocation : & Allocation ) -> Result < ( ) > { if allocation . is_null ( ) { Ok ( ( ) ) } else { let mut adjusted = allocation . clone ( ) ; adjusted . offset -= self . offset ( ) ; adjusted . byte_size += self . offset ( ) ; self . allocator . free ( & adjusted ) } }
Undo the offset+size adjustments which were applied by [Self::allocate],
then use the underlying allocator to actually free the memory.
Undo the offset + size adjustments which were applied by [ Self :: allocate ] then use the underlying allocator to actually free the memory .
&mut self
allocation
&Allocation