Remove pointer_{ref,mut}
from tagged pointers
Just use `deref{,_mut}`!
This commit is contained in:
parent
c7c0b85f67
commit
8f408202c3
@ -115,19 +115,6 @@ pub fn pointer(self) -> P
|
||||
unsafe { P::from_ptr(self.pointer_raw()) }
|
||||
}
|
||||
|
||||
pub fn pointer_ref(&self) -> &P::Target {
|
||||
// SAFETY: pointer_raw returns the original pointer
|
||||
unsafe { self.pointer_raw().as_ref() }
|
||||
}
|
||||
|
||||
pub fn pointer_mut(&mut self) -> &mut P::Target
|
||||
where
|
||||
P: DerefMut,
|
||||
{
|
||||
// SAFETY: pointer_raw returns the original pointer
|
||||
unsafe { self.pointer_raw().as_mut() }
|
||||
}
|
||||
|
||||
#[inline]
|
||||
pub fn tag(&self) -> T {
|
||||
unsafe { T::from_usize(self.packed.addr().get() >> Self::TAG_BIT_SHIFT) }
|
||||
@ -147,7 +134,10 @@ impl<P, T, const COMPARE_PACKED: bool> Deref for CopyTaggedPtr<P, T, COMPARE_PAC
|
||||
type Target = P::Target;
|
||||
|
||||
fn deref(&self) -> &Self::Target {
|
||||
self.pointer_ref()
|
||||
// Safety:
|
||||
// `pointer_raw` returns the original pointer from `P::into_ptr` which,
|
||||
// by the `Pointer`'s contract, must be valid.
|
||||
unsafe { self.pointer_raw().as_ref() }
|
||||
}
|
||||
}
|
||||
|
||||
@ -157,7 +147,11 @@ impl<P, T, const COMPARE_PACKED: bool> DerefMut for CopyTaggedPtr<P, T, COMPARE_
|
||||
T: Tag,
|
||||
{
|
||||
fn deref_mut(&mut self) -> &mut Self::Target {
|
||||
self.pointer_mut()
|
||||
// Safety:
|
||||
// `pointer_raw` returns the original pointer from `P::into_ptr` which,
|
||||
// by the `Pointer`'s contract, must be valid for writes if
|
||||
// `P: DerefMut`.
|
||||
unsafe { self.pointer_raw().as_mut() }
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -41,9 +41,6 @@ pub fn new(pointer: P, tag: T) -> Self {
|
||||
TaggedPtr { raw: CopyTaggedPtr::new(pointer, tag) }
|
||||
}
|
||||
|
||||
pub fn pointer_ref(&self) -> &P::Target {
|
||||
self.raw.pointer_ref()
|
||||
}
|
||||
pub fn tag(&self) -> T {
|
||||
self.raw.tag()
|
||||
}
|
||||
@ -56,7 +53,7 @@ impl<P, T, const COMPARE_PACKED: bool> std::ops::Deref for TaggedPtr<P, T, COMPA
|
||||
{
|
||||
type Target = P::Target;
|
||||
fn deref(&self) -> &Self::Target {
|
||||
self.raw.pointer_ref()
|
||||
self.raw.deref()
|
||||
}
|
||||
}
|
||||
|
||||
@ -66,7 +63,7 @@ impl<P, T, const COMPARE_PACKED: bool> std::ops::DerefMut for TaggedPtr<P, T, CO
|
||||
T: Tag,
|
||||
{
|
||||
fn deref_mut(&mut self) -> &mut Self::Target {
|
||||
self.raw.pointer_mut()
|
||||
self.raw.deref_mut()
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user