diff options
author | Anthony Ramine <n.oxyde@gmail.com> | 2015-04-07 20:27:30 +0200 |
---|---|---|
committer | Anthony Ramine <n.oxyde@gmail.com> | 2015-04-07 20:27:30 +0200 |
commit | cdb3efec879d67d2bdfe3aa1b2f98950a995d784 (patch) | |
tree | 2ee178bfaccefaf04d6e5c5df268271256ce2fe5 /components/script/dom/node.rs | |
parent | e57630711fed229cb9c939aa31619f42aa62651e (diff) | |
download | servo-cdb3efec879d67d2bdfe3aa1b2f98950a995d784.tar.gz servo-cdb3efec879d67d2bdfe3aa1b2f98950a995d784.zip |
Use a Temporary iterator in Node::collect_text_contents()
Diffstat (limited to 'components/script/dom/node.rs')
-rw-r--r-- | components/script/dom/node.rs | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/components/script/dom/node.rs b/components/script/dom/node.rs index 95374e4f360..822fe4ff4e6 100644 --- a/components/script/dom/node.rs +++ b/components/script/dom/node.rs @@ -1681,10 +1681,11 @@ impl Node { Temporary::from_rooted(copy.r()) } - pub fn collect_text_contents<'a, T: Iterator<Item=JSRef<'a, Node>>>(iterator: T) -> String { + pub fn collect_text_contents<T: Iterator<Item=Temporary<Node>>>(iterator: T) -> String { let mut content = String::new(); for node in iterator { - let text: Option<JSRef<Text>> = TextCast::to_ref(node); + let node = node.root(); + let text = TextCast::to_ref(node.r()); match text { Some(text) => content.push_str(text.characterdata().data().as_slice()), None => (), @@ -1832,7 +1833,8 @@ impl<'a> NodeMethods for JSRef<'a, Node> { match self.type_id { NodeTypeId::DocumentFragment | NodeTypeId::Element(..) => { - let content = Node::collect_text_contents(self.traverse_preorder()); + let content = Node::collect_text_contents( + self.traverse_preorder().map(Temporary::from_rooted)); Some(content) } NodeTypeId::Comment | |