diff options
| author | Ralf Jung <post@ralfj.de> | 2018-11-12 08:39:13 +0100 |
|---|---|---|
| committer | Ralf Jung <post@ralfj.de> | 2018-11-12 08:39:13 +0100 |
| commit | ace20b964651e5f61f8233ae826f3a904ef5a8cb (patch) | |
| tree | 93debcbf4116d20a25a685fbf3aaa0fd84eeff6c | |
| parent | d1d79ae3ad36e82e2be33bea108d6a4e98ddce0b (diff) | |
| download | rust-ace20b964651e5f61f8233ae826f3a904ef5a8cb.tar.gz rust-ace20b964651e5f61f8233ae826f3a904ef5a8cb.zip | |
for uniformity, also move memory_deallocated to AllocationExtra
| -rw-r--r-- | src/librustc/mir/interpret/allocation.rs | 11 | ||||
| -rw-r--r-- | src/librustc_mir/interpret/machine.rs | 10 | ||||
| -rw-r--r-- | src/librustc_mir/interpret/memory.rs | 2 |
3 files changed, 12 insertions, 11 deletions
diff --git a/src/librustc/mir/interpret/allocation.rs b/src/librustc/mir/interpret/allocation.rs index e55997099c8..cc92b63256c 100644 --- a/src/librustc/mir/interpret/allocation.rs +++ b/src/librustc/mir/interpret/allocation.rs @@ -65,6 +65,17 @@ pub trait AllocationExtra<Tag>: ::std::fmt::Debug + Default + Clone { ) -> EvalResult<'tcx> { Ok(()) } + + /// Hook for performing extra checks on a memory deallocation. + /// `size` will be the size of the allocation. + #[inline] + fn memory_deallocated( + _alloc: &mut Allocation<Tag, Self>, + _ptr: Pointer<Tag>, + _size: Size, + ) -> EvalResult<'tcx> { + Ok(()) + } } impl AllocationExtra<()> for () {} diff --git a/src/librustc_mir/interpret/machine.rs b/src/librustc_mir/interpret/machine.rs index 047996777ea..4f677b086d4 100644 --- a/src/librustc_mir/interpret/machine.rs +++ b/src/librustc_mir/interpret/machine.rs @@ -174,16 +174,6 @@ pub trait Machine<'a, 'mir, 'tcx>: Sized { dest: PlaceTy<'tcx, Self::PointerTag>, ) -> EvalResult<'tcx>; - /// Hook for performing extra checks when memory gets deallocated. - #[inline] - fn memory_deallocated( - _alloc: &mut Allocation<Self::PointerTag, Self::AllocExtra>, - _ptr: Pointer<Self::PointerTag>, - _size: Size, - ) -> EvalResult<'tcx> { - Ok(()) - } - /// Add the tag for a newly allocated pointer. fn tag_new_allocation( ecx: &mut EvalContext<'a, 'mir, 'tcx, Self>, diff --git a/src/librustc_mir/interpret/memory.rs b/src/librustc_mir/interpret/memory.rs index 10bc984a447..e125927e7d2 100644 --- a/src/librustc_mir/interpret/memory.rs +++ b/src/librustc_mir/interpret/memory.rs @@ -225,7 +225,7 @@ impl<'a, 'mir, 'tcx, M: Machine<'a, 'mir, 'tcx>> Memory<'a, 'mir, 'tcx, M> { // Let the machine take some extra action let size = Size::from_bytes(alloc.bytes.len() as u64); - M::memory_deallocated(&mut alloc, ptr, size)?; + AllocationExtra::memory_deallocated(&mut alloc, ptr, size)?; // Don't forget to remember size and align of this now-dead allocation let old = self.dead_alloc_map.insert( |
