diff options
| author | Oliver Schneider <github35764891676564198441@oli-obk.de> | 2018-05-21 00:46:06 +0200 |
|---|---|---|
| committer | Oliver Schneider <github35764891676564198441@oli-obk.de> | 2018-05-24 20:48:54 +0200 |
| commit | 3bbf2fd7159e5be5aee8d5c4e11f855862283d26 (patch) | |
| tree | a30e0236fc591f22df27ffac2b54afe3ae9e563b /src | |
| parent | d7324631aed90a5a4182c1eac8f2670f586fb3b3 (diff) | |
| download | rust-3bbf2fd7159e5be5aee8d5c4e11f855862283d26.tar.gz rust-3bbf2fd7159e5be5aee8d5c4e11f855862283d26.zip | |
Remove Pointer::zero in favor of Pointer::from
Diffstat (limited to 'src')
| -rw-r--r-- | src/librustc/mir/interpret/mod.rs | 11 | ||||
| -rw-r--r-- | src/librustc_mir/hair/cx/mod.rs | 6 | ||||
| -rw-r--r-- | src/librustc_mir/hair/pattern/mod.rs | 6 | ||||
| -rw-r--r-- | src/librustc_mir/interpret/eval_context.rs | 3 | ||||
| -rw-r--r-- | src/librustc_mir/interpret/memory.rs | 9 | ||||
| -rw-r--r-- | src/librustc_mir/interpret/place.rs | 2 |
6 files changed, 16 insertions, 21 deletions
diff --git a/src/librustc/mir/interpret/mod.rs b/src/librustc/mir/interpret/mod.rs index 397e4fdc940..a44729f2c59 100644 --- a/src/librustc/mir/interpret/mod.rs +++ b/src/librustc/mir/interpret/mod.rs @@ -115,15 +115,18 @@ pub struct Pointer { pub offset: Size, } +/// Produces a `Pointer` which points to the beginning of the Allocation +impl From<AllocId> for Pointer { + fn from(alloc_id: AllocId) -> Self { + Pointer::new(alloc_id, Size::ZERO) + } +} + impl<'tcx> Pointer { pub fn new(alloc_id: AllocId, offset: Size) -> Self { Pointer { alloc_id, offset } } - pub fn zero(alloc_id: AllocId) -> Self { - Pointer::new(alloc_id, Size::ZERO) - } - pub(crate) fn wrapping_signed_offset<C: HasDataLayout>(self, i: i64, cx: C) -> Self { Pointer::new( self.alloc_id, diff --git a/src/librustc_mir/hair/cx/mod.rs b/src/librustc_mir/hair/cx/mod.rs index f633320e650..562e4cec6b8 100644 --- a/src/librustc_mir/hair/cx/mod.rs +++ b/src/librustc_mir/hair/cx/mod.rs @@ -182,16 +182,14 @@ impl<'a, 'gcx, 'tcx> Cx<'a, 'gcx, 'tcx> { LitKind::Str(ref s, _) => { let s = s.as_str(); let id = self.tcx.allocate_bytes(s.as_bytes()); - let ptr = Pointer::zero(id); ConstValue::ScalarPair( - Scalar::Ptr(ptr), + Scalar::Ptr(id.into()), Scalar::from_u128(s.len() as u128), ) }, LitKind::ByteStr(ref data) => { let id = self.tcx.allocate_bytes(data); - let ptr = Pointer::zero(id); - ConstValue::Scalar(ptr.into()) + ConstValue::Scalar(Scalar::Ptr(id.into())) }, LitKind::Byte(n) => ConstValue::Scalar(Scalar::Bytes(n as u128)), LitKind::Int(n, _) if neg => { diff --git a/src/librustc_mir/hair/pattern/mod.rs b/src/librustc_mir/hair/pattern/mod.rs index 21728685230..e387a4fa61b 100644 --- a/src/librustc_mir/hair/pattern/mod.rs +++ b/src/librustc_mir/hair/pattern/mod.rs @@ -1128,16 +1128,14 @@ fn lit_to_const<'a, 'tcx>(lit: &'tcx ast::LitKind, LitKind::Str(ref s, _) => { let s = s.as_str(); let id = tcx.allocate_bytes(s.as_bytes()); - let ptr = Pointer::zero(id); ConstValue::ScalarPair( - Scalar::Ptr(ptr), + Scalar::Ptr(id.into()), Scalar::from_u128(s.len() as u128), ) }, LitKind::ByteStr(ref data) => { let id = tcx.allocate_bytes(data); - let ptr = Pointer::zero(id); - ConstValue::Scalar(ptr.into()) + ConstValue::Scalar(Scalar::Ptr(id.into())) }, LitKind::Byte(n) => ConstValue::Scalar(Scalar::Bytes(n as u128)), LitKind::Int(n, _) => { diff --git a/src/librustc_mir/interpret/eval_context.rs b/src/librustc_mir/interpret/eval_context.rs index 2d14b817b8d..40d997126c8 100644 --- a/src/librustc_mir/interpret/eval_context.rs +++ b/src/librustc_mir/interpret/eval_context.rs @@ -1019,8 +1019,7 @@ impl<'a, 'mir, 'tcx: 'mir, M: Machine<'mir, 'tcx>> EvalContext<'a, 'mir, 'tcx, M .lock() .intern_static(gid.instance.def_id()); let layout = self.layout_of(ty)?; - let ptr = Pointer::zero(alloc_id); - return Ok(Value::ByRef(ptr.into(), layout.align)) + return Ok(Value::ByRef(Scalar::Ptr(alloc_id.into()), layout.align)) } let cv = self.const_eval(gid)?; self.const_to_value(&cv.val, ty) diff --git a/src/librustc_mir/interpret/memory.rs b/src/librustc_mir/interpret/memory.rs index 9278b08dff8..a929459f9bd 100644 --- a/src/librustc_mir/interpret/memory.rs +++ b/src/librustc_mir/interpret/memory.rs @@ -72,13 +72,11 @@ impl<'a, 'mir, 'tcx, M: Machine<'mir, 'tcx>> Memory<'a, 'mir, 'tcx, M> { } pub fn create_fn_alloc(&mut self, instance: Instance<'tcx>) -> Pointer { - let id = self.tcx.alloc_map.lock().create_fn_alloc(instance); - Pointer::zero(id) + self.tcx.alloc_map.lock().create_fn_alloc(instance).into() } pub fn allocate_bytes(&mut self, bytes: &[u8]) -> Pointer { - let id = self.tcx.allocate_bytes(bytes); - Pointer::zero(id) + self.tcx.allocate_bytes(bytes).into() } /// kind is `None` for statics @@ -109,8 +107,7 @@ impl<'a, 'mir, 'tcx, M: Machine<'mir, 'tcx>> Memory<'a, 'mir, 'tcx, M> { align: Align, kind: Option<MemoryKind<M::MemoryKinds>>, ) -> EvalResult<'tcx, Pointer> { - let id = self.allocate_value(Allocation::undef(size, align), kind)?; - Ok(Pointer::zero(id)) + self.allocate_value(Allocation::undef(size, align), kind).map(Pointer::from) } pub fn reallocate( diff --git a/src/librustc_mir/interpret/place.rs b/src/librustc_mir/interpret/place.rs index 1c630491a9c..9d51fcce7c7 100644 --- a/src/librustc_mir/interpret/place.rs +++ b/src/librustc_mir/interpret/place.rs @@ -210,7 +210,7 @@ impl<'a, 'mir, 'tcx, M: Machine<'mir, 'tcx>> EvalContext<'a, 'mir, 'tcx, M> { }; let alloc = Machine::init_static(self, cid)?; Place::Ptr { - ptr: Pointer::zero(alloc).into(), + ptr: Scalar::Ptr(alloc.into()), align: layout.align, extra: PlaceExtra::None, } |
