From 4f574b47321688a9ae637118d3c722f676f1ee40 Mon Sep 17 00:00:00 2001 From: Manish Goregaokar Date: Sun, 28 Sep 2014 16:45:58 +0530 Subject: [PATCH] Remove Traceable from characterdata.rs --- components/layout/wrapper.rs | 4 ++-- components/script/dom/characterdata.rs | 23 ++++++++++---------- components/script/dom/document.rs | 2 +- components/script/dom/htmlserializer.rs | 12 +++++----- components/script/dom/node.rs | 12 +++++----- components/script/html/hubbub_html_parser.rs | 2 +- 6 files changed, 27 insertions(+), 28 deletions(-) diff --git a/components/layout/wrapper.rs b/components/layout/wrapper.rs index eb1be0b09de..01ed3bd722e 100644 --- a/components/layout/wrapper.rs +++ b/components/layout/wrapper.rs @@ -187,7 +187,7 @@ impl<'ln> TLayoutNode for LayoutNode<'ln> { unsafe { if self.get().is_text() { let text: JS = self.get_jsmanaged().transmute_copy(); - (*text.unsafe_get()).characterdata.data.deref().borrow().clone() + (*text.unsafe_get()).characterdata.data.borrow().clone() } else if self.get().is_htmlinputelement() { let input: JS = self.get_jsmanaged().transmute_copy(); input.get_value_for_layout() @@ -711,7 +711,7 @@ impl<'ln> ThreadSafeLayoutNode<'ln> { Some(TextNodeTypeId) => { unsafe { let text: JS = self.get_jsmanaged().transmute_copy(); - if !is_whitespace((*text.unsafe_get()).characterdata.data.deref().borrow().as_slice()) { + if !is_whitespace((*text.unsafe_get()).characterdata.data.borrow().as_slice()) { return false } diff --git a/components/script/dom/characterdata.rs b/components/script/dom/characterdata.rs index 3cf6fef31f8..277295daef9 100644 --- a/components/script/dom/characterdata.rs +++ b/components/script/dom/characterdata.rs @@ -8,7 +8,6 @@ use dom::bindings::codegen::Bindings::CharacterDataBinding::CharacterDataMethods use dom::bindings::codegen::InheritTypes::{CharacterDataDerived, NodeCast}; use dom::bindings::error::{Fallible, ErrorResult, IndexSize}; use dom::bindings::js::JSRef; -use dom::bindings::trace::Traceable; use dom::bindings::utils::{Reflectable, Reflector}; use dom::document::Document; use dom::eventtarget::{EventTarget, NodeTargetTypeId}; @@ -21,7 +20,7 @@ use std::cell::RefCell; #[must_root] pub struct CharacterData { pub node: Node, - pub data: Traceable>, + pub data: RefCell, } impl CharacterDataDerived for EventTarget { @@ -39,31 +38,31 @@ impl CharacterData { pub fn new_inherited(id: NodeTypeId, data: DOMString, document: JSRef) -> CharacterData { CharacterData { node: Node::new_inherited(id, document), - data: Traceable::new(RefCell::new(data)), + data: RefCell::new(data), } } } impl<'a> CharacterDataMethods for JSRef<'a, CharacterData> { fn Data(self) -> DOMString { - self.data.deref().borrow().clone() + self.data.borrow().clone() } fn SetData(self, arg: DOMString) -> ErrorResult { - *self.data.deref().borrow_mut() = arg; + *self.data.borrow_mut() = arg; Ok(()) } fn Length(self) -> u32 { - self.data.deref().borrow().len() as u32 + self.data.borrow().len() as u32 } fn SubstringData(self, offset: u32, count: u32) -> Fallible { - Ok(self.data.deref().borrow().as_slice().slice(offset as uint, count as uint).to_string()) + Ok(self.data.borrow().as_slice().slice(offset as uint, count as uint).to_string()) } fn AppendData(self, arg: DOMString) -> ErrorResult { - self.data.deref().borrow_mut().push_str(arg.as_slice()); + self.data.borrow_mut().push_str(arg.as_slice()); Ok(()) } @@ -76,7 +75,7 @@ impl<'a> CharacterDataMethods for JSRef<'a, CharacterData> { } fn ReplaceData(self, offset: u32, count: u32, arg: DOMString) -> ErrorResult { - let length = self.data.deref().borrow().len() as u32; + let length = self.data.borrow().len() as u32; if offset > length { return Err(IndexSize); } @@ -85,10 +84,10 @@ impl<'a> CharacterDataMethods for JSRef<'a, CharacterData> { } else { count }; - let mut data = self.data.deref().borrow().as_slice().slice(0, offset as uint).to_string(); + let mut data = self.data.borrow().as_slice().slice(0, offset as uint).to_string(); data.push_str(arg.as_slice()); - data.push_str(self.data.deref().borrow().as_slice().slice((offset + count) as uint, length as uint)); - *self.data.deref().borrow_mut() = data; + data.push_str(self.data.borrow().as_slice().slice((offset + count) as uint, length as uint)); + *self.data.borrow_mut() = data; // FIXME: Once we have `Range`, we should implement step7 to step11 Ok(()) } diff --git a/components/script/dom/document.rs b/components/script/dom/document.rs index 6a39a301b41..c3a31168cb8 100644 --- a/components/script/dom/document.rs +++ b/components/script/dom/document.rs @@ -648,7 +648,7 @@ impl<'a> DocumentMethods for JSRef<'a, Document> { for child in title_elem.children() { if child.is_text() { let text: JSRef = TextCast::to_ref(child).unwrap(); - title.push_str(text.deref().characterdata.data.deref().borrow().as_slice()); + title.push_str(text.deref().characterdata.data.borrow().as_slice()); } } }); diff --git a/components/script/dom/htmlserializer.rs b/components/script/dom/htmlserializer.rs index c9f6753b815..06748df13cc 100644 --- a/components/script/dom/htmlserializer.rs +++ b/components/script/dom/htmlserializer.rs @@ -69,7 +69,7 @@ pub fn serialize(iterator: &mut NodeIterator) -> String { fn serialize_comment(comment: JSRef, html: &mut String) { html.push_str(""); } @@ -82,11 +82,11 @@ fn serialize_text(text: JSRef, html: &mut String) { "style" | "script" | "xmp" | "iframe" | "noembed" | "noframes" | "plaintext" | "noscript" if elem.deref().namespace == ns!(HTML) - => html.push_str(text.deref().characterdata.data.deref().borrow().as_slice()), - _ => escape(text.deref().characterdata.data.deref().borrow().as_slice(), false, html) + => html.push_str(text.deref().characterdata.data.borrow().as_slice()), + _ => escape(text.deref().characterdata.data.borrow().as_slice(), false, html) } } - _ => escape(text.deref().characterdata.data.deref().borrow().as_slice(), false, html) + _ => escape(text.deref().characterdata.data.borrow().as_slice(), false, html) } } @@ -95,7 +95,7 @@ fn serialize_processing_instruction(processing_instruction: JSRef"); } @@ -120,7 +120,7 @@ fn serialize_elem(elem: JSRef, open_elements: &mut Vec, html: & match node.first_child().map(|child| child.root()) { Some(ref child) if child.is_text() => { let text: JSRef = CharacterDataCast::to_ref(**child).unwrap(); - if text.deref().data.deref().borrow().len() > 0 && text.deref().data.deref().borrow().as_slice().char_at(0) == '\n' { + if text.deref().data.borrow().len() > 0 && text.deref().data.borrow().as_slice().char_at(0) == '\n' { html.push_char('\x0A'); } }, diff --git a/components/script/dom/node.rs b/components/script/dom/node.rs index 8c040ead18c..ca4a682712b 100644 --- a/components/script/dom/node.rs +++ b/components/script/dom/node.rs @@ -1362,7 +1362,7 @@ impl Node { CommentNodeTypeId => { let comment: JSRef = CommentCast::to_ref(node).unwrap(); let comment = comment.deref(); - let comment = Comment::new(comment.characterdata.data.deref().borrow().clone(), *document); + let comment = Comment::new(comment.characterdata.data.borrow().clone(), *document); NodeCast::from_temporary(comment) }, DocumentNodeTypeId => { @@ -1386,14 +1386,14 @@ impl Node { TextNodeTypeId => { let text: JSRef = TextCast::to_ref(node).unwrap(); let text = text.deref(); - let text = Text::new(text.characterdata.data.deref().borrow().clone(), *document); + let text = Text::new(text.characterdata.data.borrow().clone(), *document); NodeCast::from_temporary(text) }, ProcessingInstructionNodeTypeId => { let pi: JSRef = ProcessingInstructionCast::to_ref(node).unwrap(); let pi = pi.deref(); let pi = ProcessingInstruction::new(pi.target.clone(), - pi.characterdata.data.deref().borrow().clone(), *document); + pi.characterdata.data.borrow().clone(), *document); NodeCast::from_temporary(pi) }, }.root(); @@ -1660,7 +1660,7 @@ impl<'a> NodeMethods for JSRef<'a, Node> { self.wait_until_safe_to_modify_dom(); let characterdata: JSRef = CharacterDataCast::to_ref(self).unwrap(); - *characterdata.data.deref().borrow_mut() = value; + *characterdata.data.borrow_mut() = value; // Notify the document that the content of this node is different let document = self.owner_doc().root(); @@ -1873,12 +1873,12 @@ impl<'a> NodeMethods for JSRef<'a, Node> { let pi: JSRef = ProcessingInstructionCast::to_ref(node).unwrap(); let other_pi: JSRef = ProcessingInstructionCast::to_ref(other).unwrap(); (pi.deref().target == other_pi.deref().target) && - (*pi.deref().characterdata.data.deref().borrow() == *other_pi.deref().characterdata.data.deref().borrow()) + (*pi.deref().characterdata.data.borrow() == *other_pi.deref().characterdata.data.borrow()) } fn is_equal_characterdata(node: JSRef, other: JSRef) -> bool { let characterdata: JSRef = CharacterDataCast::to_ref(node).unwrap(); let other_characterdata: JSRef = CharacterDataCast::to_ref(other).unwrap(); - *characterdata.deref().data.deref().borrow() == *other_characterdata.deref().data.deref().borrow() + *characterdata.deref().data.borrow() == *other_characterdata.deref().data.borrow() } fn is_equal_element_attrs(node: JSRef, other: JSRef) -> bool { let element: JSRef = ElementCast::to_ref(node).unwrap(); diff --git a/components/script/html/hubbub_html_parser.rs b/components/script/html/hubbub_html_parser.rs index 562d8b883fd..ee34cda888c 100644 --- a/components/script/html/hubbub_html_parser.rs +++ b/components/script/html/hubbub_html_parser.rs @@ -492,7 +492,7 @@ pub fn parse_html(page: &Page, for child in scriptnode.children() { debug!("child = {:?}", child); let text: JSRef = TextCast::to_ref(child).unwrap(); - data.push_str(text.deref().characterdata.data.deref().borrow().as_slice()); + data.push_str(text.deref().characterdata.data.borrow().as_slice()); } debug!("script data = {:?}", data);