@@ -27,7 +27,7 @@ type DynSerialize = dyn erased_serde::Serialize + Send;
27
27
pub ( crate ) enum UserDataVariant < T > {
28
28
Default ( XRc < UserDataCell < T > > ) ,
29
29
#[ cfg( feature = "serialize" ) ]
30
- Serializable ( XRc < UserDataCell < ForceSync < Box < DynSerialize > > > > ) ,
30
+ Serializable ( XRc < UserDataCell < Box < DynSerialize > > > ) ,
31
31
}
32
32
33
33
impl < T > Clone for UserDataVariant < T > {
@@ -82,7 +82,7 @@ impl<T> UserDataVariant<T> {
82
82
Self :: Default ( inner) => XRc :: into_inner ( inner) . unwrap ( ) . value . into_inner ( ) ,
83
83
#[ cfg( feature = "serialize" ) ]
84
84
Self :: Serializable ( inner) => unsafe {
85
- let raw = Box :: into_raw ( XRc :: into_inner ( inner) . unwrap ( ) . value . into_inner ( ) . 0 ) ;
85
+ let raw = Box :: into_raw ( XRc :: into_inner ( inner) . unwrap ( ) . value . into_inner ( ) ) ;
86
86
* Box :: from_raw ( raw as * mut T )
87
87
} ,
88
88
} )
@@ -112,7 +112,6 @@ impl<T: Serialize + MaybeSend + 'static> UserDataVariant<T> {
112
112
#[ inline( always) ]
113
113
pub ( crate ) fn new_ser ( data : T ) -> Self {
114
114
let data = Box :: new ( data) as Box < DynSerialize > ;
115
- let data = ForceSync ( data) ;
116
115
Self :: Serializable ( XRc :: new ( UserDataCell :: new ( data) ) )
117
116
}
118
117
}
@@ -129,7 +128,7 @@ impl Serialize for UserDataVariant<()> {
129
128
// No need to do this if the `send` feature is disabled.
130
129
#[ cfg( not( feature = "send" ) ) ]
131
130
let _guard = self . try_borrow ( ) . map_err ( serde:: ser:: Error :: custom) ?;
132
- ( * inner. value . get ( ) ) . 0 . serialize ( serializer)
131
+ ( * inner. value . get ( ) ) . serialize ( serializer)
133
132
} ,
134
133
}
135
134
}
@@ -142,7 +141,7 @@ pub(crate) struct UserDataCell<T> {
142
141
}
143
142
144
143
unsafe impl < T : Send > Send for UserDataCell < T > { }
145
- unsafe impl < T : Send + Sync > Sync for UserDataCell < T > { }
144
+ unsafe impl < T : Send > Sync for UserDataCell < T > { }
146
145
147
146
impl < T > UserDataCell < T > {
148
147
#[ inline( always) ]
@@ -352,11 +351,6 @@ impl<'a, T> TryFrom<&'a UserDataVariant<T>> for UserDataBorrowMut<'a, T> {
352
351
}
353
352
}
354
353
355
- #[ repr( transparent) ]
356
- pub ( crate ) struct ForceSync < T > ( T ) ;
357
-
358
- unsafe impl < T : Send > Sync for ForceSync < T > { }
359
-
360
354
#[ inline]
361
355
fn try_value_to_userdata < T > ( value : Value ) -> Result < AnyUserData > {
362
356
match value {
0 commit comments