remove unnecessary deallocate_local hack
This commit is contained in:
parent
c8baac5776
commit
6b26640583
@ -18,8 +18,8 @@ use rustc_span::{Pos, Span};
|
||||
use rustc_target::abi::{Align, HasDataLayout, LayoutOf, Size, TargetDataLayout};
|
||||
|
||||
use super::{
|
||||
Immediate, MPlaceTy, Machine, MemPlace, MemPlaceMeta, Memory, Operand, Place, PlaceTy,
|
||||
ScalarMaybeUninit, StackPopJump,
|
||||
Immediate, MPlaceTy, Machine, MemPlace, MemPlaceMeta, Memory, MemoryKind, Operand, Place,
|
||||
PlaceTy, ScalarMaybeUninit, StackPopJump,
|
||||
};
|
||||
use crate::transform::validate::equal_up_to_regions;
|
||||
use crate::util::storage::AlwaysLiveLocals;
|
||||
@ -900,7 +900,7 @@ impl<'mir, 'tcx: 'mir, M: Machine<'mir, 'tcx>> InterpCx<'mir, 'tcx, M> {
|
||||
// due to the local having ZST type.
|
||||
let ptr = ptr.assert_ptr();
|
||||
trace!("deallocating local: {:?}", self.memory.dump_alloc(ptr.alloc_id));
|
||||
self.memory.deallocate_local(ptr)?;
|
||||
self.memory.deallocate(ptr, None, MemoryKind::Stack)?;
|
||||
};
|
||||
Ok(())
|
||||
}
|
||||
|
@ -276,17 +276,6 @@ impl<'mir, 'tcx, M: Machine<'mir, 'tcx>> Memory<'mir, 'tcx, M> {
|
||||
Ok(new_ptr)
|
||||
}
|
||||
|
||||
/// Deallocate a local, or do nothing if that local has been made into a global.
|
||||
pub fn deallocate_local(&mut self, ptr: Pointer<M::PointerTag>) -> InterpResult<'tcx> {
|
||||
// The allocation might be already removed by global interning.
|
||||
// This can only really happen in the CTFE instance, not in miri.
|
||||
if self.alloc_map.contains_key(&ptr.alloc_id) {
|
||||
self.deallocate(ptr, None, MemoryKind::Stack)
|
||||
} else {
|
||||
Ok(())
|
||||
}
|
||||
}
|
||||
|
||||
pub fn deallocate(
|
||||
&mut self,
|
||||
ptr: Pointer<M::PointerTag>,
|
||||
@ -1110,7 +1099,11 @@ impl<'mir, 'tcx, M: Machine<'mir, 'tcx>> Memory<'mir, 'tcx, M> {
|
||||
}
|
||||
|
||||
// now fill in all the "init" data
|
||||
dest_alloc.mark_compressed_init_range(&compressed, alloc_range(dest.offset, size), num_copies);
|
||||
dest_alloc.mark_compressed_init_range(
|
||||
&compressed,
|
||||
alloc_range(dest.offset, size),
|
||||
num_copies,
|
||||
);
|
||||
// copy the relocations to the destination
|
||||
dest_alloc.mark_relocation_range(relocations);
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user