File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -282,32 +282,14 @@ impl AssetPool {
282282 I : IntoIterator < Item = Rc < Asset > > ,
283283 {
284284 let new_pool = assets. into_iter ( ) . map ( |mut asset| {
285- if asset. id . is_some ( ) {
286- // Already commissioned
287- asset. into ( )
288- } else {
289- let mut update_id = |asset : & mut Asset | {
290- // We need to assign an ID
291- asset. id = Some ( AssetID ( self . next_id ) ) ;
292- self . next_id += 1 ;
293- } ;
294-
295- // Asset is newly created from process. We use `get_mut` to avoid a clone in the
296- // (likely) case that there is only one reference to `asset`
297- let rc_asset = match Rc :: get_mut ( & mut asset) {
298- Some ( asset_inner) => {
299- update_id ( asset_inner) ;
300- asset
301- }
302- None => {
303- let mut asset = asset. as_ref ( ) . clone ( ) ;
304- update_id ( & mut asset) ;
305- asset. into ( )
306- }
307- } ;
308-
309- rc_asset. into ( )
285+ if asset. id . is_none ( ) {
286+ // Asset is newly created from process so we need to assign an ID
287+ let asset = Rc :: make_mut ( & mut asset) ;
288+ asset. id = Some ( AssetID ( self . next_id ) ) ;
289+ self . next_id += 1 ;
310290 }
291+
292+ asset. into ( )
311293 } ) ;
312294
313295 self . active . clear ( ) ;
You can’t perform that action at this time.
0 commit comments