aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/dom/characterdata.rs
diff options
context:
space:
mode:
authorMs2ger <ms2ger@gmail.com>2014-10-14 10:49:33 +0200
committerMs2ger <ms2ger@gmail.com>2014-10-14 10:49:33 +0200
commit16e071168c7c8c8d49f1b3ce5863ff05dbdc177b (patch)
tree9764532fcf53c7a817d57693ba7c7d1a87c82e69 /components/script/dom/characterdata.rs
parentfd70b366aeada7f8cb4b2457c04fd07f0ea9b143 (diff)
downloadservo-16e071168c7c8c8d49f1b3ce5863ff05dbdc177b.tar.gz
servo-16e071168c7c8c8d49f1b3ce5863ff05dbdc177b.zip
Don't borrow CharacterData.data from layout.
This should fix the most frequent intermittent wpt failure.
Diffstat (limited to 'components/script/dom/characterdata.rs')
-rw-r--r--components/script/dom/characterdata.rs7
1 files changed, 7 insertions, 0 deletions
diff --git a/components/script/dom/characterdata.rs b/components/script/dom/characterdata.rs
index 8201965bdb3..753a4336849 100644
--- a/components/script/dom/characterdata.rs
+++ b/components/script/dom/characterdata.rs
@@ -15,6 +15,7 @@ use dom::node::{CommentNodeTypeId, Node, NodeTypeId, TextNodeTypeId, ProcessingI
use servo_util::str::DOMString;
use std::cell::{Ref, RefCell};
+use std::mem;
#[jstraceable]
#[must_root]
@@ -57,6 +58,12 @@ impl CharacterData {
pub fn set_data(&self, data: DOMString) {
*self.data.borrow_mut() = data;
}
+
+ #[inline]
+ pub unsafe fn data_for_layout<'a>(&'a self) -> &'a str {
+ mem::transmute::<&RefCell<DOMString>, &DOMString>(&self.data).as_slice()
+ }
+
}
impl<'a> CharacterDataMethods for JSRef<'a, CharacterData> {