[assets] remove unnecessary temporary strong handles (#2304)
# Objective - When creating an asset, the `update_asset_storage` function was unnecessarily creating an extraneous `Handle` to the created asset via calling `set`. This has some overhead as the `RefChange::Increment/Decrement` event was being sent. - A similar exteraneous handle is also created in `load_async` when loading dependencies. ## Solution - Have the implementation use `Assets::set_untracked` and `AssetServer::load_untracked` so no intermediate handle is created.
This commit is contained in:
		
							parent
							
								
									4fed2ee858
								
							
						
					
					
						commit
						27d809fd23
					
				| @ -328,8 +328,7 @@ impl AssetServer { | |||||||
|             let type_uuid = loaded_asset.value.as_ref().unwrap().type_uuid(); |             let type_uuid = loaded_asset.value.as_ref().unwrap().type_uuid(); | ||||||
|             source_info.asset_types.insert(label_id, type_uuid); |             source_info.asset_types.insert(label_id, type_uuid); | ||||||
|             for dependency in loaded_asset.dependencies.iter() { |             for dependency in loaded_asset.dependencies.iter() { | ||||||
|                 // another handle already exists created from the asset path
 |                 self.load_untracked(dependency.clone(), false); | ||||||
|                 let _ = self.load_untyped(dependency.clone()); |  | ||||||
|             } |             } | ||||||
|         } |         } | ||||||
| 
 | 
 | ||||||
| @ -493,7 +492,7 @@ impl AssetServer { | |||||||
|                         } |                         } | ||||||
|                     } |                     } | ||||||
| 
 | 
 | ||||||
|                     let _ = assets.set(result.id, *result.asset); |                     assets.set_untracked(result.id, *result.asset); | ||||||
|                 } |                 } | ||||||
|                 Ok(AssetLifecycleEvent::Free(handle_id)) => { |                 Ok(AssetLifecycleEvent::Free(handle_id)) => { | ||||||
|                     if let HandleId::AssetPathId(id) = handle_id { |                     if let HandleId::AssetPathId(id) = handle_id { | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user
	 Nathan Ward
						Nathan Ward