1
0
= 2 жил өмнө
parent
commit
c245f04c8c

+ 6 - 6
packages/core/src/nodes.rs

@@ -500,11 +500,11 @@ pub trait AnyValue: Sync + Send + 'static {
 #[cfg(feature = "sync_attributes")]
 #[cfg(feature = "sync_attributes")]
 impl<T: Any + PartialEq + Send + Sync + 'static> AnyValue for T {
 impl<T: Any + PartialEq + Send + Sync + 'static> AnyValue for T {
     fn any_cmp(&self, other: &dyn AnyValue) -> bool {
     fn any_cmp(&self, other: &dyn AnyValue) -> bool {
-        if self.type_id() != other.type_id() {
+        if let Some(other) = other.as_any().downcast_ref() {
+            self == other
+        } else {
             return false;
             return false;
         }
         }
-
-        self == unsafe { &*(other as *const _ as *const T) }
     }
     }
 
 
     fn as_any(&self) -> &dyn Any {
     fn as_any(&self) -> &dyn Any {
@@ -525,11 +525,11 @@ pub trait AnyValue: 'static {
 #[cfg(not(feature = "sync_attributes"))]
 #[cfg(not(feature = "sync_attributes"))]
 impl<T: Any + PartialEq + 'static> AnyValue for T {
 impl<T: Any + PartialEq + 'static> AnyValue for T {
     fn any_cmp(&self, other: &dyn AnyValue) -> bool {
     fn any_cmp(&self, other: &dyn AnyValue) -> bool {
-        if self.type_id() != other.type_id() {
+        if let Some(other) = other.as_any().downcast_ref() {
+            self == other
+        } else {
             return false;
             return false;
         }
         }
-
-        self == unsafe { &*(other as *const _ as *const T) }
     }
     }
 
 
     fn as_any(&self) -> &dyn Any {
     fn as_any(&self) -> &dyn Any {