diff options
-rw-r--r-- | components/script/dom/characterdata.rs | 7 | ||||
-rw-r--r-- | components/script/dom/node.rs | 3 |
2 files changed, 7 insertions, 3 deletions
diff --git a/components/script/dom/characterdata.rs b/components/script/dom/characterdata.rs index 707a801f70f..dead19c79b6 100644 --- a/components/script/dom/characterdata.rs +++ b/components/script/dom/characterdata.rs @@ -79,7 +79,7 @@ impl<'a> CharacterDataMethods for &'a CharacterData { // https://dom.spec.whatwg.org/#dom-characterdata-appenddatadata fn AppendData(self, data: DOMString) { - self.data.borrow_mut().push_str(&data); + self.append_data(&*data); } // https://dom.spec.whatwg.org/#dom-characterdata-insertdataoffset-data @@ -159,6 +159,7 @@ pub enum CharacterDataTypeId { pub trait CharacterDataHelpers<'a> { fn data(self) -> Ref<'a, DOMString>; + fn append_data(self, data: &str); } impl<'a> CharacterDataHelpers<'a> for &'a CharacterData { @@ -166,6 +167,10 @@ impl<'a> CharacterDataHelpers<'a> for &'a CharacterData { fn data(self) -> Ref<'a, DOMString> { self.data.borrow() } + #[inline] + fn append_data(self, data: &str) { + self.data.borrow_mut().push_str(data) + } } #[allow(unsafe_code)] diff --git a/components/script/dom/node.rs b/components/script/dom/node.rs index 26af6bb225d..ab48fcd1e35 100644 --- a/components/script/dom/node.rs +++ b/components/script/dom/node.rs @@ -2330,10 +2330,9 @@ impl<'a> NodeMethods for &'a Node { } else { match prev_text { Some(ref text_node) => { - let text_node = text_node.clone(); let prev_characterdata = CharacterDataCast::from_ref(text_node.r()); - let _ = prev_characterdata.AppendData(characterdata.Data()); + prev_characterdata.append_data(&**characterdata.data()); self.remove_child(child.r()); }, None => prev_text = Some(Root::from_ref(text)) |