@@ -525,14 +525,13 @@ impl AssetServer {
525
525
}
526
526
}
527
527
528
- fn free_unused_assets_system_ref ( asset_server : & AssetServer ) {
529
- // note: order of these function is important.
530
- asset_server. mark_unused_assets ( ) ;
528
+ fn free_unused_assets_system_impl ( asset_server : & AssetServer ) {
531
529
asset_server. free_unused_assets ( ) ;
530
+ asset_server. mark_unused_assets ( ) ;
532
531
}
533
532
534
533
pub fn free_unused_assets_system ( asset_server : Res < AssetServer > ) {
535
- free_unused_assets_system_ref ( & asset_server) ;
534
+ free_unused_assets_system_impl ( & asset_server) ;
536
535
}
537
536
538
537
#[ cfg( test) ]
@@ -761,18 +760,24 @@ mod test {
761
760
762
761
// mimics one full frame
763
762
let tick = |server : & AssetServer , assets : & mut Assets < PngAsset > | {
764
- free_unused_assets_system_ref ( server) ;
763
+ free_unused_assets_system_impl ( server) ;
765
764
server. update_asset_storage ( assets) ;
766
765
} ;
767
766
768
767
tick ( & asset_server, & mut assets) ;
769
768
// asset should exist and be loaded at this point
770
769
assert_eq ! ( LoadState :: Loaded , asset_server. get_load_state( id) ) ;
770
+ assert ! ( assets. get( & handle) . is_some( ) ) ;
771
771
772
- // after dropping the handle, next call to `tick` should
773
- // remove the asset and reset the `LoadState`.
772
+ // after dropping the handle, next call to `tick` will prepare the assets for removal.
774
773
drop ( handle) ;
775
774
tick ( & asset_server, & mut assets) ;
775
+ assert_eq ! ( LoadState :: Loaded , asset_server. get_load_state( id) ) ;
776
+ assert ! ( assets. get( id) . is_some( ) ) ;
777
+
778
+ // second call to tick will actually remove the asset.
779
+ tick ( & asset_server, & mut assets) ;
776
780
assert_eq ! ( LoadState :: NotLoaded , asset_server. get_load_state( id) ) ;
781
+ assert ! ( assets. get( id) . is_none( ) ) ;
777
782
}
778
783
}
0 commit comments