From 2a58c0768b5c90f435eac6cb8614831a15c54b6c Mon Sep 17 00:00:00 2001 From: Bobby Holley Date: Sat, 15 Jul 2017 14:07:02 -0700 Subject: [PATCH] Avoid memmoving the large smallvec in Parallel.rs. MozReview-Commit-ID: 7nzjMwOmszZ --- components/style/parallel.rs | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/components/style/parallel.rs b/components/style/parallel.rs index dd7072a201e..cf66f993643 100644 --- a/components/style/parallel.rs +++ b/components/style/parallel.rs @@ -29,7 +29,6 @@ use rayon; use scoped_tls::ScopedTLS; use smallvec::SmallVec; use std::borrow::Borrow; -use std::mem; use time; use traversal::{DomTraversal, PerLevelTraversalData, PreTraverseToken}; @@ -187,10 +186,9 @@ fn top_down_dom<'a, 'scope, E, D>(nodes: &'a [SendNode], // // Which are not at all uncommon. if !discovered_child_nodes.is_empty() { - let children = mem::replace(&mut discovered_child_nodes, Default::default()); let mut traversal_data_copy = traversal_data.clone(); traversal_data_copy.current_dom_depth += 1; - traverse_nodes(&*children, + traverse_nodes(&*discovered_child_nodes, DispatchMode::NotTailCall, recursion_depth, root, @@ -199,6 +197,7 @@ fn top_down_dom<'a, 'scope, E, D>(nodes: &'a [SendNode], pool, traversal, tls); + discovered_child_nodes.clear(); } let node = **n;