File tree Expand file tree Collapse file tree 1 file changed +10
-7
lines changed Expand file tree Collapse file tree 1 file changed +10
-7
lines changed Original file line number Diff line number Diff line change @@ -3447,13 +3447,16 @@ impl<T: Default> Default for Arc<T> {
34473447 /// assert_eq!(*x, 0);
34483448 /// ```
34493449 fn default ( ) -> Arc < T > {
3450- let x = Box :: into_raw ( Box :: write ( Box :: new_uninit ( ) , ArcInner {
3451- strong : atomic:: AtomicUsize :: new ( 1 ) ,
3452- weak : atomic:: AtomicUsize :: new ( 1 ) ,
3453- data : T :: default ( ) ,
3454- } ) ) ;
3455- // SAFETY: `Box::into_raw` consumes the `Box` and never returns null
3456- unsafe { Self :: from_inner ( NonNull :: new_unchecked ( x) ) }
3450+ unsafe {
3451+ Self :: from_inner (
3452+ Box :: leak ( Box :: write ( Box :: new_uninit ( ) , ArcInner {
3453+ strong : atomic:: AtomicUsize :: new ( 1 ) ,
3454+ weak : atomic:: AtomicUsize :: new ( 1 ) ,
3455+ data : T :: default ( ) ,
3456+ } ) )
3457+ . into ( ) ,
3458+ )
3459+ }
34573460 }
34583461}
34593462
You can’t perform that action at this time.
0 commit comments