File tree 1 file changed +4
-6
lines changed 1 file changed +4
-6
lines changed Original file line number Diff line number Diff line change @@ -42,7 +42,7 @@ impl Waker {
42
42
/// `Arc` type and the safe `Wake` trait.
43
43
#[ inline]
44
44
pub unsafe fn new ( inner : NonNull < dyn UnsafeWake > ) -> Self {
45
- Waker { inner : inner }
45
+ Waker { inner }
46
46
}
47
47
48
48
/// Wake up the task associated with this `Waker`.
@@ -120,7 +120,7 @@ impl LocalWaker {
120
120
/// on the current thread.
121
121
#[ inline]
122
122
pub unsafe fn new ( inner : NonNull < dyn UnsafeWake > ) -> Self {
123
- LocalWaker { inner : inner }
123
+ LocalWaker { inner }
124
124
}
125
125
126
126
/// Wake up the task associated with this `LocalWaker`.
@@ -159,17 +159,15 @@ impl LocalWaker {
159
159
impl From < LocalWaker > for Waker {
160
160
#[ inline]
161
161
fn from ( local_waker : LocalWaker ) -> Self {
162
- Waker { inner : local_waker. inner }
162
+ unsafe { mem :: transmute :: < LocalWaker , Waker > ( local_waker) }
163
163
}
164
164
}
165
165
166
166
impl Clone for LocalWaker {
167
167
#[ inline]
168
168
fn clone ( & self ) -> Self {
169
169
let waker = unsafe { self . inner . as_ref ( ) . clone_raw ( ) } ;
170
- let inner = waker. inner ;
171
- mem:: forget ( waker) ;
172
- LocalWaker { inner }
170
+ unsafe { mem:: transmute :: < Waker , LocalWaker > ( waker) }
173
171
}
174
172
}
175
173
You can’t perform that action at this time.
0 commit comments