Skip to content

Commit 8f40820

Browse files
committed
Remove pointer_{ref,mut} from tagged pointers
Just use `deref{,_mut}`!
1 parent c7c0b85 commit 8f40820

File tree

2 files changed

+11
-20
lines changed

2 files changed

+11
-20
lines changed

compiler/rustc_data_structures/src/tagged_ptr/copy.rs

Lines changed: 9 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -115,19 +115,6 @@ where
115115
unsafe { P::from_ptr(self.pointer_raw()) }
116116
}
117117

118-
pub fn pointer_ref(&self) -> &P::Target {
119-
// SAFETY: pointer_raw returns the original pointer
120-
unsafe { self.pointer_raw().as_ref() }
121-
}
122-
123-
pub fn pointer_mut(&mut self) -> &mut P::Target
124-
where
125-
P: DerefMut,
126-
{
127-
// SAFETY: pointer_raw returns the original pointer
128-
unsafe { self.pointer_raw().as_mut() }
129-
}
130-
131118
#[inline]
132119
pub fn tag(&self) -> T {
133120
unsafe { T::from_usize(self.packed.addr().get() >> Self::TAG_BIT_SHIFT) }
@@ -147,7 +134,10 @@ where
147134
type Target = P::Target;
148135

149136
fn deref(&self) -> &Self::Target {
150-
self.pointer_ref()
137+
// Safety:
138+
// `pointer_raw` returns the original pointer from `P::into_ptr` which,
139+
// by the `Pointer`'s contract, must be valid.
140+
unsafe { self.pointer_raw().as_ref() }
151141
}
152142
}
153143

@@ -157,7 +147,11 @@ where
157147
T: Tag,
158148
{
159149
fn deref_mut(&mut self) -> &mut Self::Target {
160-
self.pointer_mut()
150+
// Safety:
151+
// `pointer_raw` returns the original pointer from `P::into_ptr` which,
152+
// by the `Pointer`'s contract, must be valid for writes if
153+
// `P: DerefMut`.
154+
unsafe { self.pointer_raw().as_mut() }
161155
}
162156
}
163157

compiler/rustc_data_structures/src/tagged_ptr/drop.rs

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -41,9 +41,6 @@ where
4141
TaggedPtr { raw: CopyTaggedPtr::new(pointer, tag) }
4242
}
4343

44-
pub fn pointer_ref(&self) -> &P::Target {
45-
self.raw.pointer_ref()
46-
}
4744
pub fn tag(&self) -> T {
4845
self.raw.tag()
4946
}
@@ -56,7 +53,7 @@ where
5653
{
5754
type Target = P::Target;
5855
fn deref(&self) -> &Self::Target {
59-
self.raw.pointer_ref()
56+
self.raw.deref()
6057
}
6158
}
6259

@@ -66,7 +63,7 @@ where
6663
T: Tag,
6764
{
6865
fn deref_mut(&mut self) -> &mut Self::Target {
69-
self.raw.pointer_mut()
66+
self.raw.deref_mut()
7067
}
7168
}
7269

0 commit comments

Comments
 (0)