diff --git a/html5ever/src/tokenizer/mod.rs b/html5ever/src/tokenizer/mod.rs index 7dd690ea..cb3384f6 100644 --- a/html5ever/src/tokenizer/mod.rs +++ b/html5ever/src/tokenizer/mod.rs @@ -27,6 +27,7 @@ use log::{debug, trace}; use markup5ever::{ns, small_char_set, TokenizerResult}; use std::borrow::Cow::{self, Borrowed}; use std::cell::{Cell, RefCell, RefMut}; +use std::cmp::Reverse; use std::collections::BTreeMap; use std::mem; @@ -1774,12 +1775,9 @@ impl Tokenizer { .iter() .map(|(s, t)| (*s, *t)) .collect(); - results.sort_by(|&(_, x), &(_, y)| y.cmp(&x)); + results.sort_by_key(|&(_, x)| Reverse(x)); - let total: u64 = results - .iter() - .map(|&(_, t)| t) - .fold(0, ::std::ops::Add::add); + let total: u64 = results.iter().map(|&(_, t)| t).sum(); println!("\nTokenizer profile, in nanoseconds"); println!( "\n{:12} total in token sink", diff --git a/html5ever/src/tree_builder/mod.rs b/html5ever/src/tree_builder/mod.rs index 8a0379ea..3fcfaec3 100644 --- a/html5ever/src/tree_builder/mod.rs +++ b/html5ever/src/tree_builder/mod.rs @@ -1279,10 +1279,8 @@ where _ => continue, }; match *name { - local_name!("td") | local_name!("th") => { - if !last { - return InsertionMode::InCell; - } + local_name!("td") | local_name!("th") if !last => { + return InsertionMode::InCell; }, local_name!("tr") => return InsertionMode::InRow, local_name!("tbody") | local_name!("thead") | local_name!("tfoot") => { diff --git a/rcdom/lib.rs b/rcdom/lib.rs index b7e38b8a..1ee9306b 100644 --- a/rcdom/lib.rs +++ b/rcdom/lib.rs @@ -262,7 +262,7 @@ impl Drop for Node { let mut nodes = mem::take(&mut *self.children.borrow_mut()); while let Some(node) = nodes.pop() { let children = mem::take(&mut *node.children.borrow_mut()); - nodes.extend(children.into_iter()); + nodes.extend(children); if let NodeData::Element { ref template_contents, .. diff --git a/xml5ever/src/tokenizer/mod.rs b/xml5ever/src/tokenizer/mod.rs index f6383f2f..6872b1c6 100644 --- a/xml5ever/src/tokenizer/mod.rs +++ b/xml5ever/src/tokenizer/mod.rs @@ -24,6 +24,7 @@ use log::debug; use markup5ever::{local_name, namespace_prefix, ns, small_char_set, TokenizerResult}; use std::borrow::Cow::{self, Borrowed}; use std::cell::{Cell, RefCell, RefMut}; +use std::cmp::Reverse; use std::collections::BTreeMap; use std::mem::replace; @@ -1137,12 +1138,9 @@ impl XmlTokenizer { .iter() .map(|(s, t)| (*s, *t)) .collect(); - results.sort_by(|&(_, x), &(_, y)| y.cmp(&x)); + results.sort_by_key(|&(_, x)| Reverse(x)); - let total: u64 = results - .iter() - .map(|&(_, t)| t) - .fold(0, ::std::ops::Add::add); + let total: u64 = results.iter().map(|&(_, t)| t).sum(); debug!("\nTokenizer profile, in nanoseconds"); debug!( "\n{:12} total in token sink",