1
Fork 0

make LockInfo non-Copy

This commit is contained in:
Ralf Jung 2017-07-18 16:43:37 -07:00 committed by Oliver Schneider
parent 59d49c5d6d
commit 0b15db0cc2
No known key found for this signature in database
GPG key ID: A69F8D225B3AD7D9
2 changed files with 4 additions and 4 deletions

View file

@ -219,7 +219,7 @@ impl<'tcx> fmt::Display for EvalError<'tcx> {
if access { "memory access" } else { "pointer computed" },
ptr.offset, ptr.alloc_id, allocation_size)
},
MemoryLockViolation { ptr, len, access, lock } => {
MemoryLockViolation { ptr, len, access, ref lock } => {
write!(f, "{:?} access at {:?}, size {}, is in conflict with lock {:?}",
access, ptr, len, lock)
}
@ -227,7 +227,7 @@ impl<'tcx> fmt::Display for EvalError<'tcx> {
write!(f, "tried to release memory write lock at {:?}, size {}, but the write lock is held by someone else",
ptr, len)
}
DeallocatedLockedMemory { ptr, lock } => {
DeallocatedLockedMemory { ptr, ref lock } => {
write!(f, "tried to deallocate memory at {:?} in conflict with lock {:?}",
ptr, lock)
}

View file

@ -96,7 +96,7 @@ enum LockStatus {
}
/// Information about a lock that is or will be held.
#[derive(Copy, Clone, Debug)]
#[derive(Clone, Debug)]
pub struct LockInfo {
kind: AccessKind,
lifetime: DynamicLifetime,
@ -168,7 +168,7 @@ impl Allocation {
for lock in self.iter_locks(offset, len) {
// Check if the lock is active, and is in conflict with the access.
if lock.status == LockStatus::Held && !lock.access_permitted(frame, access) {
return Err(*lock);
return Err(lock.clone());
}
}
Ok(())