diff options
author | Michael Wu <mwu@mozilla.com> | 2015-07-15 17:08:21 -0400 |
---|---|---|
committer | Michael Wu <mwu@mozilla.com> | 2015-07-15 17:09:26 -0400 |
commit | 2752d3398e3a22232ac4acc39f635012b7d581cd (patch) | |
tree | 6dbccd920d44f9565403a4ae0a513efbedc162dd /components/script/dom/node.rs | |
parent | b6b95085fbb18496d8104e350f85b6617c19862e (diff) | |
download | servo-2752d3398e3a22232ac4acc39f635012b7d581cd.tar.gz servo-2752d3398e3a22232ac4acc39f635012b7d581cd.zip |
Directly append children to output node in parse_html_fragment
Diffstat (limited to 'components/script/dom/node.rs')
-rw-r--r-- | components/script/dom/node.rs | 12 |
1 files changed, 3 insertions, 9 deletions
diff --git a/components/script/dom/node.rs b/components/script/dom/node.rs index 20fb38fa00a..caa2e86f674 100644 --- a/components/script/dom/node.rs +++ b/components/script/dom/node.rs @@ -1023,20 +1023,14 @@ impl<'a> NodeHelpers for &'a Node { fn parse_fragment(self, markup: DOMString) -> Fallible<Root<DocumentFragment>> { let context_node: &Node = NodeCast::from_ref(self); let context_document = document_from_node(self); - let mut new_children: RootedVec<JS<Node>> = RootedVec::new(); + let fragment = DocumentFragment::new(context_document.r()); if context_document.r().is_html_document() { - parse_html_fragment(context_node, markup, &mut new_children); + let fragment_node = NodeCast::from_ref(fragment.r()); + parse_html_fragment(context_node, markup, fragment_node); } else { // FIXME: XML case unimplemented!(); } - let fragment = DocumentFragment::new(context_document.r()); - { - let fragment_node = NodeCast::from_ref(fragment.r()); - for node in new_children.iter() { - fragment_node.AppendChild(node.root().r()).unwrap(); - } - } Ok(fragment) } } |