@@ -27,7 +27,7 @@ type DynSerialize = dyn erased_serde::Serialize + Send;
2727pub ( crate ) enum UserDataVariant < T > {
2828 Default ( XRc < UserDataCell < T > > ) ,
2929 #[ cfg( feature = "serialize" ) ]
30- Serializable ( XRc < UserDataCell < ForceSync < Box < DynSerialize > > > > ) ,
30+ Serializable ( XRc < UserDataCell < Box < DynSerialize > > > ) ,
3131}
3232
3333impl < T > Clone for UserDataVariant < T > {
@@ -82,7 +82,7 @@ impl<T> UserDataVariant<T> {
8282 Self :: Default ( inner) => XRc :: into_inner ( inner) . unwrap ( ) . value . into_inner ( ) ,
8383 #[ cfg( feature = "serialize" ) ]
8484 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 ( ) ) ;
8686 * Box :: from_raw ( raw as * mut T )
8787 } ,
8888 } )
@@ -112,7 +112,6 @@ impl<T: Serialize + MaybeSend + 'static> UserDataVariant<T> {
112112 #[ inline( always) ]
113113 pub ( crate ) fn new_ser ( data : T ) -> Self {
114114 let data = Box :: new ( data) as Box < DynSerialize > ;
115- let data = ForceSync ( data) ;
116115 Self :: Serializable ( XRc :: new ( UserDataCell :: new ( data) ) )
117116 }
118117}
@@ -129,7 +128,7 @@ impl Serialize for UserDataVariant<()> {
129128 // No need to do this if the `send` feature is disabled.
130129 #[ cfg( not( feature = "send" ) ) ]
131130 let _guard = self . try_borrow ( ) . map_err ( serde:: ser:: Error :: custom) ?;
132- ( * inner. value . get ( ) ) . 0 . serialize ( serializer)
131+ ( * inner. value . get ( ) ) . serialize ( serializer)
133132 } ,
134133 }
135134 }
@@ -142,7 +141,7 @@ pub(crate) struct UserDataCell<T> {
142141}
143142
144143unsafe 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 > { }
146145
147146impl < T > UserDataCell < T > {
148147 #[ inline( always) ]
@@ -352,11 +351,6 @@ impl<'a, T> TryFrom<&'a UserDataVariant<T>> for UserDataBorrowMut<'a, T> {
352351 }
353352}
354353
355- #[ repr( transparent) ]
356- pub ( crate ) struct ForceSync < T > ( T ) ;
357-
358- unsafe impl < T : Send > Sync for ForceSync < T > { }
359-
360354#[ inline]
361355fn try_value_to_userdata < T > ( value : Value ) -> Result < AnyUserData > {
362356 match value {
0 commit comments