diff --git a/gfx/wr/webrender/src/picture.rs b/gfx/wr/webrender/src/picture.rs index f8361c838459..509772dde4db 100644 --- a/gfx/wr/webrender/src/picture.rs +++ b/gfx/wr/webrender/src/picture.rs @@ -2266,7 +2266,7 @@ impl PicturePrimitive { /// gives a picture a chance to retain any cached tiles that /// may be useful during the next scene build. pub fn destroy( - mut self, + &mut self, retained_tiles: &mut RetainedTiles, clip_scroll_tree: &ClipScrollTree, ) { @@ -2279,9 +2279,7 @@ impl PicturePrimitive { clip_scroll_tree, ); - for tile in tile_cache.tiles { - retained_tiles.tiles.push(tile); - } + retained_tiles.tiles.extend(tile_cache.tiles); } } diff --git a/gfx/wr/webrender/src/prim_store/mod.rs b/gfx/wr/webrender/src/prim_store/mod.rs index 2364dd783401..e601adfffc8c 100644 --- a/gfx/wr/webrender/src/prim_store/mod.rs +++ b/gfx/wr/webrender/src/prim_store/mod.rs @@ -1700,11 +1700,11 @@ impl PrimitiveStore { /// Destroy an existing primitive store. This is called just before /// a primitive store is replaced with a newly built scene. pub fn destroy( - self, + mut self, retained_tiles: &mut RetainedTiles, clip_scroll_tree: &ClipScrollTree, ) { - for pic in self.pictures { + for pic in &mut self.pictures { pic.destroy( retained_tiles, clip_scroll_tree,