remove cur_frame from memory (validation is gone, new validation will not need it)
This commit is contained in:
parent
7483ea8176
commit
689c71193a
@ -604,8 +604,6 @@ impl<'a, 'mir, 'tcx: 'mir, M: Machine<'mir, 'tcx>> EvalContext<'a, 'mir, 'tcx, M
|
||||
}
|
||||
}
|
||||
|
||||
self.memory.cur_frame = self.cur_frame();
|
||||
|
||||
if self.stack.len() > self.stack_limit {
|
||||
err!(StackFrameLimitReached)
|
||||
} else {
|
||||
@ -619,10 +617,6 @@ impl<'a, 'mir, 'tcx: 'mir, M: Machine<'mir, 'tcx>> EvalContext<'a, 'mir, 'tcx, M
|
||||
let frame = self.stack.pop().expect(
|
||||
"tried to pop a stack frame, but there were none",
|
||||
);
|
||||
if !self.stack.is_empty() {
|
||||
// TODO: Is this the correct time to start considering these accesses as originating from the returned-to stack frame?
|
||||
self.memory.cur_frame = self.cur_frame();
|
||||
}
|
||||
match frame.return_to_block {
|
||||
StackPopCleanup::MarkStatic(mutable) => {
|
||||
if let Place::Ptr(MemPlace { ptr, .. }) = frame.return_place {
|
||||
|
@ -43,9 +43,6 @@ pub struct Memory<'a, 'mir, 'tcx: 'a + 'mir, M: Machine<'mir, 'tcx>> {
|
||||
/// Actual memory allocations (arbitrary bytes, may contain pointers into other allocations).
|
||||
alloc_map: FxHashMap<AllocId, Allocation>,
|
||||
|
||||
/// The current stack frame. Used to check accesses against locks.
|
||||
pub cur_frame: usize,
|
||||
|
||||
pub tcx: TyCtxtAt<'a, 'tcx, 'tcx>,
|
||||
}
|
||||
|
||||
@ -63,14 +60,12 @@ impl<'a, 'mir, 'tcx, M> PartialEq for Memory<'a, 'mir, 'tcx, M>
|
||||
data,
|
||||
alloc_kind,
|
||||
alloc_map,
|
||||
cur_frame,
|
||||
tcx: _,
|
||||
} = self;
|
||||
|
||||
*data == other.data
|
||||
&& *alloc_kind == other.alloc_kind
|
||||
&& *alloc_map == other.alloc_map
|
||||
&& *cur_frame == other.cur_frame
|
||||
}
|
||||
}
|
||||
|
||||
@ -83,12 +78,10 @@ impl<'a, 'mir, 'tcx, M> Hash for Memory<'a, 'mir, 'tcx, M>
|
||||
data,
|
||||
alloc_kind: _,
|
||||
alloc_map: _,
|
||||
cur_frame,
|
||||
tcx: _,
|
||||
} = self;
|
||||
|
||||
data.hash(state);
|
||||
cur_frame.hash(state);
|
||||
|
||||
// We ignore some fields which don't change between evaluation steps.
|
||||
|
||||
@ -114,7 +107,6 @@ impl<'a, 'mir, 'tcx, M: Machine<'mir, 'tcx>> Memory<'a, 'mir, 'tcx, M> {
|
||||
alloc_kind: FxHashMap::default(),
|
||||
alloc_map: FxHashMap::default(),
|
||||
tcx,
|
||||
cur_frame: usize::max_value(),
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user