diff options
author | Corey Farwell <coreyf@rwell.org> | 2015-11-08 01:03:56 -0500 |
---|---|---|
committer | Corey Farwell <coreyf@rwell.org> | 2015-11-08 01:03:56 -0500 |
commit | 9443b89af7f86efa2bf08f71648c1ecd02ec6363 (patch) | |
tree | 6040a4f4516949df30aced744871ab32b01dc5d3 /components/script/dom/document.rs | |
parent | fe4a5890d1500b2f7871e8fc92c23884ee52ac67 (diff) | |
download | servo-9443b89af7f86efa2bf08f71648c1ecd02ec6363.tar.gz servo-9443b89af7f86efa2bf08f71648c1ecd02ec6363.zip |
Minor 'node_from_nodes_and_strings' cleanup
This prevents an 'IntoIter' from getting unnecessarily allocated
Diffstat (limited to 'components/script/dom/document.rs')
-rw-r--r-- | components/script/dom/document.rs | 12 |
1 files changed, 5 insertions, 7 deletions
diff --git a/components/script/dom/document.rs b/components/script/dom/document.rs index 70bf4cb7bb0..dc3225bba04 100644 --- a/components/script/dom/document.rs +++ b/components/script/dom/document.rs @@ -931,15 +931,13 @@ impl Document { } // https://dom.spec.whatwg.org/#converting-nodes-into-a-node - pub fn node_from_nodes_and_strings(&self, nodes: Vec<NodeOrString>) + pub fn node_from_nodes_and_strings(&self, mut nodes: Vec<NodeOrString>) -> Fallible<Root<Node>> { if nodes.len() == 1 { - match nodes.into_iter().next().unwrap() { - NodeOrString::eNode(node) => Ok(node), - NodeOrString::eString(string) => { - Ok(Root::upcast(self.CreateTextNode(string))) - }, - } + Ok(match nodes.pop().unwrap() { + NodeOrString::eNode(node) => node, + NodeOrString::eString(string) => Root::upcast(self.CreateTextNode(string)), + }) } else { let fragment = Root::upcast::<Node>(self.CreateDocumentFragment()); for node in nodes { |