@@ -342,7 +342,7 @@ impl<'w, T: Component> Fetch<'w> for ReadFetch<T> {
342342 let column = tables[ archetype. table_id ( ) ]
343343 . get_column ( state. component_id )
344344 . unwrap ( ) ;
345- self . table_components = column. get_ptr ( ) . cast :: < T > ( ) ;
345+ self . table_components = column. get_data_ptr ( ) . cast :: < T > ( ) ;
346346 }
347347 StorageType :: SparseSet => self . entities = archetype. entities ( ) . as_ptr ( ) ,
348348 }
@@ -353,7 +353,7 @@ impl<'w, T: Component> Fetch<'w> for ReadFetch<T> {
353353 self . table_components = table
354354 . get_column ( state. component_id )
355355 . unwrap ( )
356- . get_ptr ( )
356+ . get_data_ptr ( )
357357 . cast :: < T > ( ) ;
358358 }
359359
@@ -386,7 +386,7 @@ impl<T: Component> WorldQuery for &mut T {
386386pub struct WriteFetch < T > {
387387 storage_type : StorageType ,
388388 table_components : NonNull < T > ,
389- table_ticks : * mut ComponentTicks ,
389+ table_ticks : * const ComponentTicks ,
390390 entities : * const Entity ,
391391 entity_table_rows : * const usize ,
392392 sparse_set : * const ComponentSparseSet ,
@@ -508,8 +508,8 @@ impl<'w, T: Component> Fetch<'w> for WriteFetch<T> {
508508 let column = tables[ archetype. table_id ( ) ]
509509 . get_column ( state. component_id )
510510 . unwrap ( ) ;
511- self . table_components = column. get_ptr ( ) . cast :: < T > ( ) ;
512- self . table_ticks = column. get_ticks_mut_ptr ( ) ;
511+ self . table_components = column. get_data_ptr ( ) . cast :: < T > ( ) ;
512+ self . table_ticks = column. get_ticks_ptr ( ) ;
513513 }
514514 StorageType :: SparseSet => self . entities = archetype. entities ( ) . as_ptr ( ) ,
515515 }
@@ -518,8 +518,8 @@ impl<'w, T: Component> Fetch<'w> for WriteFetch<T> {
518518 #[ inline]
519519 unsafe fn set_table ( & mut self , state : & Self :: State , table : & Table ) {
520520 let column = table. get_column ( state. component_id ) . unwrap ( ) ;
521- self . table_components = column. get_ptr ( ) . cast :: < T > ( ) ;
522- self . table_ticks = column. get_ticks_mut_ptr ( ) ;
521+ self . table_components = column. get_data_ptr ( ) . cast :: < T > ( ) ;
522+ self . table_ticks = column. get_ticks_ptr ( ) ;
523523 }
524524
525525 #[ inline]
@@ -529,7 +529,7 @@ impl<'w, T: Component> Fetch<'w> for WriteFetch<T> {
529529 let table_row = * self . entity_table_rows . add ( archetype_index) ;
530530 Mut {
531531 value : & mut * self . table_components . as_ptr ( ) . add ( table_row) ,
532- component_ticks : & mut * self . table_ticks . add ( table_row) ,
532+ component_ticks : & * self . table_ticks . add ( table_row) ,
533533 change_tick : self . change_tick ,
534534 last_change_tick : self . last_change_tick ,
535535 }
@@ -540,7 +540,7 @@ impl<'w, T: Component> Fetch<'w> for WriteFetch<T> {
540540 ( * self . sparse_set ) . get_with_ticks ( entity) . unwrap ( ) ;
541541 Mut {
542542 value : & mut * component. cast :: < T > ( ) ,
543- component_ticks : & mut * component_ticks,
543+ component_ticks : & * component_ticks,
544544 change_tick : self . change_tick ,
545545 last_change_tick : self . last_change_tick ,
546546 }
@@ -552,7 +552,7 @@ impl<'w, T: Component> Fetch<'w> for WriteFetch<T> {
552552 unsafe fn table_fetch ( & mut self , table_row : usize ) -> Self :: Item {
553553 Mut {
554554 value : & mut * self . table_components . as_ptr ( ) . add ( table_row) ,
555- component_ticks : & mut * self . table_ticks . add ( table_row) ,
555+ component_ticks : & * self . table_ticks . add ( table_row) ,
556556 change_tick : self . change_tick ,
557557 last_change_tick : self . last_change_tick ,
558558 }
@@ -853,7 +853,7 @@ impl<'w, T: Component> Fetch<'w> for ChangeTrackersFetch<T> {
853853 let column = tables[ archetype. table_id ( ) ]
854854 . get_column ( state. component_id )
855855 . unwrap ( ) ;
856- self . table_ticks = column. get_ticks_mut_ptr ( ) . cast :: < ComponentTicks > ( ) ;
856+ self . table_ticks = column. get_ticks_ptr ( ) . cast :: < ComponentTicks > ( ) ;
857857 }
858858 StorageType :: SparseSet => self . entities = archetype. entities ( ) . as_ptr ( ) ,
859859 }
@@ -864,7 +864,7 @@ impl<'w, T: Component> Fetch<'w> for ChangeTrackersFetch<T> {
864864 self . table_ticks = table
865865 . get_column ( state. component_id )
866866 . unwrap ( )
867- . get_ticks_mut_ptr ( )
867+ . get_ticks_ptr ( )
868868 . cast :: < ComponentTicks > ( ) ;
869869 }
870870
@@ -874,7 +874,7 @@ impl<'w, T: Component> Fetch<'w> for ChangeTrackersFetch<T> {
874874 StorageType :: Table => {
875875 let table_row = * self . entity_table_rows . add ( archetype_index) ;
876876 ChangeTrackers {
877- component_ticks : * self . table_ticks . add ( table_row) ,
877+ component_ticks : ( & * self . table_ticks . add ( table_row) ) . clone ( ) ,
878878 marker : PhantomData ,
879879 last_change_tick : self . last_change_tick ,
880880 change_tick : self . change_tick ,
@@ -883,7 +883,7 @@ impl<'w, T: Component> Fetch<'w> for ChangeTrackersFetch<T> {
883883 StorageType :: SparseSet => {
884884 let entity = * self . entities . add ( archetype_index) ;
885885 ChangeTrackers {
886- component_ticks : * ( * self . sparse_set ) . get_ticks ( entity) . unwrap ( ) ,
886+ component_ticks : ( & * self . sparse_set ) . get_ticks ( entity) . cloned ( ) . unwrap ( ) ,
887887 marker : PhantomData ,
888888 last_change_tick : self . last_change_tick ,
889889 change_tick : self . change_tick ,
@@ -895,7 +895,7 @@ impl<'w, T: Component> Fetch<'w> for ChangeTrackersFetch<T> {
895895 #[ inline]
896896 unsafe fn table_fetch ( & mut self , table_row : usize ) -> Self :: Item {
897897 ChangeTrackers {
898- component_ticks : * self . table_ticks . add ( table_row) ,
898+ component_ticks : ( & * self . table_ticks . add ( table_row) ) . clone ( ) ,
899899 marker : PhantomData ,
900900 last_change_tick : self . last_change_tick ,
901901 change_tick : self . change_tick ,
0 commit comments