File tree Expand file tree Collapse file tree 2 files changed +11
-20
lines changed
compiler/rustc_data_structures/src/tagged_ptr Expand file tree Collapse file tree 2 files changed +11
-20
lines changed Original file line number Diff line number Diff 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
Original file line number Diff line number Diff line change 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 }
5653{
5754 type Target = P :: Target ;
5855 fn deref ( & self ) -> & Self :: Target {
59- self . raw . pointer_ref ( )
56+ self . raw . deref ( )
6057 }
6158}
6259
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
You can’t perform that action at this time.
0 commit comments