Skip to content

Commit 4c7aae7

Browse files
committed
adjust all pointer_size checks to use the method
1 parent d13153c commit 4c7aae7

File tree

4 files changed

+23
-23
lines changed

4 files changed

+23
-23
lines changed

src/error.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ pub enum EvalError<'tcx> {
1616
PointerOutOfBounds {
1717
ptr: Pointer,
1818
size: usize,
19-
allocation_size: u64,
19+
allocation_size: usize,
2020
},
2121
ReadPointerAsBytes,
2222
ReadBytesAsPointer,

src/interpreter/mod.rs

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -178,7 +178,7 @@ impl<'a, 'tcx> EvalContext<'a, 'tcx> {
178178
Ok(ptr)
179179
}
180180
Str(ref s) => {
181-
let psize = self.memory.pointer_size;
181+
let psize = self.memory.pointer_size();
182182
let static_ptr = self.memory.allocate(s.len());
183183
let ptr = self.memory.allocate(psize * 2);
184184
self.memory.write_bytes(static_ptr, s.as_bytes())?;
@@ -187,7 +187,7 @@ impl<'a, 'tcx> EvalContext<'a, 'tcx> {
187187
Ok(ptr)
188188
}
189189
ByteStr(ref bs) => {
190-
let psize = self.memory.pointer_size;
190+
let psize = self.memory.pointer_size();
191191
let static_ptr = self.memory.allocate(bs.len());
192192
let ptr = self.memory.allocate(psize);
193193
self.memory.write_bytes(static_ptr, bs)?;
@@ -511,7 +511,7 @@ impl<'a, 'tcx> EvalContext<'a, 'tcx> {
511511
match lv.extra {
512512
LvalueExtra::None => {},
513513
LvalueExtra::Length(len) => {
514-
let len_ptr = dest.offset(self.memory.pointer_size as isize);
514+
let len_ptr = dest.offset(self.memory.pointer_size() as isize);
515515
self.memory.write_usize(len_ptr, len)?;
516516
}
517517
LvalueExtra::DowncastVariant(..) =>
@@ -537,7 +537,7 @@ impl<'a, 'tcx> EvalContext<'a, 'tcx> {
537537

538538
match (&src_pointee_ty.sty, &dest_pointee_ty.sty) {
539539
(&ty::TyArray(_, length), &ty::TySlice(_)) => {
540-
let len_ptr = dest.offset(self.memory.pointer_size as isize);
540+
let len_ptr = dest.offset(self.memory.pointer_size() as isize);
541541
self.memory.write_usize(len_ptr, length as u64)?;
542542
}
543543

@@ -651,7 +651,7 @@ impl<'a, 'tcx> EvalContext<'a, 'tcx> {
651651
Ok(Size::from_bytes(0))
652652
}
653653
FatPointer { .. } => {
654-
let bytes = layout::FAT_PTR_ADDR * self.memory.pointer_size;
654+
let bytes = layout::FAT_PTR_ADDR * self.memory.pointer_size();
655655
Ok(Size::from_bytes(bytes as u64))
656656
}
657657
_ => Err(EvalError::Unimplemented(format!("can't handle type: {:?}, with layout: {:?}", ty, layout))),
@@ -762,7 +762,7 @@ impl<'a, 'tcx> EvalContext<'a, 'tcx> {
762762
let ptr = self.memory.read_ptr(base.ptr)?;
763763
let extra = match pointee_ty.sty {
764764
ty::TySlice(_) | ty::TyStr => {
765-
let len_ptr = base.ptr.offset(self.memory.pointer_size as isize);
765+
let len_ptr = base.ptr.offset(self.memory.pointer_size() as isize);
766766
let len = self.memory.read_usize(len_ptr)?;
767767
LvalueExtra::Length(len)
768768
}
@@ -811,7 +811,7 @@ impl<'a, 'tcx> EvalContext<'a, 'tcx> {
811811

812812
pub fn read_primval(&mut self, ptr: Pointer, ty: Ty<'tcx>) -> EvalResult<'tcx, PrimVal> {
813813
use syntax::ast::{IntTy, UintTy};
814-
let val = match (self.memory.pointer_size, &ty.sty) {
814+
let val = match (self.memory.pointer_size(), &ty.sty) {
815815
(_, &ty::TyBool) => PrimVal::Bool(self.memory.read_bool(ptr)?),
816816
(_, &ty::TyChar) => {
817817
let c = self.memory.read_uint(ptr, 4)? as u32;
@@ -919,7 +919,7 @@ pub fn eval_main<'a, 'tcx: 'a>(
919919

920920
if mir.arg_decls.len() == 2 {
921921
// start function
922-
let ptr_size = ecx.memory().pointer_size;
922+
let ptr_size = ecx.memory().pointer_size();
923923
let nargs = ecx.memory_mut().allocate(ptr_size);
924924
ecx.memory_mut().write_usize(nargs, 0).unwrap();
925925
let args = ecx.memory_mut().allocate(ptr_size);

src/interpreter/terminator.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -277,7 +277,7 @@ impl<'a, 'tcx> EvalContext<'a, 'tcx> {
277277
.collect();
278278
let args_ptrs = args_res?;
279279

280-
let pointer_size = self.memory.pointer_size;
280+
let pointer_size = self.memory.pointer_size();
281281

282282
match name {
283283
"add_with_overflow" => self.intrinsic_with_overflow(mir::BinOp::Add, &args[0], &args[1], dest, dest_layout)?,
@@ -368,7 +368,7 @@ impl<'a, 'tcx> EvalContext<'a, 'tcx> {
368368
ty::TySlice(_) | ty::TyStr => {
369369
let elem_ty = ty.sequence_element_type(self.tcx);
370370
let elem_size = self.type_size(elem_ty) as u64;
371-
let ptr_size = self.memory.pointer_size as isize;
371+
let ptr_size = self.memory.pointer_size() as isize;
372372
let n = self.memory.read_usize(args_ptrs[0].offset(ptr_size))?;
373373
self.memory.write_uint(dest, n * elem_size, pointer_size)?;
374374
}
@@ -557,7 +557,7 @@ impl<'a, 'tcx> EvalContext<'a, 'tcx> {
557557
self.memory.deallocate(contents_ptr)?;
558558
}
559559
Err(EvalError::ReadBytesAsPointer) => {
560-
let size = self.memory.pointer_size;
560+
let size = self.memory.pointer_size();
561561
let possible_drop_fill = self.memory.read_bytes(ptr, size)?;
562562
if possible_drop_fill.iter().all(|&b| b == mem::POST_DROP_U8) {
563563
return Ok(());

src/memory.rs

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -238,11 +238,11 @@ impl<'a, 'tcx> Memory<'a, 'tcx> {
238238
if !relocations.is_empty() {
239239
print!("{:1$}", "", prefix.len()); // Print spaces.
240240
let mut pos = 0;
241-
let relocation_width = (self.pointer_size - 1) * 3;
241+
let relocation_width = (self.pointer_size() - 1) * 3;
242242
for (i, target_id) in relocations {
243243
print!("{:1$}", "", (i - pos) * 3);
244244
print!("└{0:─^1$}┘ ", format!("({})", target_id), relocation_width);
245-
pos = i + self.pointer_size;
245+
pos = i + self.pointer_size();
246246
}
247247
println!("");
248248
}
@@ -337,7 +337,7 @@ impl<'a, 'tcx> Memory<'a, 'tcx> {
337337
}
338338

339339
pub fn read_ptr(&self, ptr: Pointer) -> EvalResult<'tcx, Pointer> {
340-
let size = self.pointer_size;
340+
let size = self.pointer_size();
341341
self.check_defined(ptr, size)?;
342342
let offset = self.get_bytes_unchecked(ptr, size)?
343343
.read_uint::<NativeEndian>(size).unwrap() as usize;
@@ -350,7 +350,7 @@ impl<'a, 'tcx> Memory<'a, 'tcx> {
350350

351351
pub fn write_ptr(&mut self, dest: Pointer, ptr: Pointer) -> EvalResult<'tcx, ()> {
352352
{
353-
let size = self.pointer_size;
353+
let size = self.pointer_size();
354354
let mut bytes = self.get_bytes_mut(dest, size)?;
355355
bytes.write_uint::<NativeEndian>(ptr.offset as u64, size).unwrap();
356356
}
@@ -359,7 +359,7 @@ impl<'a, 'tcx> Memory<'a, 'tcx> {
359359
}
360360

361361
pub fn write_primval(&mut self, ptr: Pointer, val: PrimVal) -> EvalResult<'tcx, ()> {
362-
let pointer_size = self.pointer_size;
362+
let pointer_size = self.pointer_size();
363363
match val {
364364
PrimVal::Bool(b) => self.write_bool(ptr, b),
365365
PrimVal::I8(n) => self.write_int(ptr, n as i64, 1),
@@ -407,20 +407,20 @@ impl<'a, 'tcx> Memory<'a, 'tcx> {
407407
}
408408

409409
pub fn read_isize(&self, ptr: Pointer) -> EvalResult<'tcx, i64> {
410-
self.read_int(ptr, self.pointer_size)
410+
self.read_int(ptr, self.pointer_size())
411411
}
412412

413413
pub fn write_isize(&mut self, ptr: Pointer, n: i64) -> EvalResult<'tcx, ()> {
414-
let size = self.pointer_size;
414+
let size = self.pointer_size();
415415
self.write_int(ptr, n, size)
416416
}
417417

418418
pub fn read_usize(&self, ptr: Pointer) -> EvalResult<'tcx, u64> {
419-
self.read_uint(ptr, self.pointer_size)
419+
self.read_uint(ptr, self.pointer_size())
420420
}
421421

422422
pub fn write_usize(&mut self, ptr: Pointer, n: u64) -> EvalResult<'tcx, ()> {
423-
let size = self.pointer_size;
423+
let size = self.pointer_size();
424424
self.write_uint(ptr, n, size)
425425
}
426426
}
@@ -430,7 +430,7 @@ impl<'a, 'tcx> Memory<'a, 'tcx> {
430430
fn relocations(&self, ptr: Pointer, size: usize)
431431
-> EvalResult<'tcx, btree_map::Range<usize, AllocId>>
432432
{
433-
let start = ptr.offset.saturating_sub(self.pointer_size - 1);
433+
let start = ptr.offset.saturating_sub(self.pointer_size() - 1);
434434
let end = ptr.offset + size;
435435
Ok(self.get(ptr.alloc_id)?.relocations.range(Included(&start), Excluded(&end)))
436436
}
@@ -444,7 +444,7 @@ impl<'a, 'tcx> Memory<'a, 'tcx> {
444444
let start = ptr.offset;
445445
let end = start + size;
446446
let first = *keys.first().unwrap();
447-
let last = *keys.last().unwrap() + self.pointer_size;
447+
let last = *keys.last().unwrap() + self.pointer_size();
448448

449449
let alloc = self.get_mut(ptr.alloc_id)?;
450450

0 commit comments

Comments
 (0)