diff options
author | Ms2ger <ms2ger@gmail.com> | 2014-10-14 10:49:33 +0200 |
---|---|---|
committer | Ms2ger <ms2ger@gmail.com> | 2014-10-14 10:49:33 +0200 |
commit | 16e071168c7c8c8d49f1b3ce5863ff05dbdc177b (patch) | |
tree | 9764532fcf53c7a817d57693ba7c7d1a87c82e69 /components/script/dom/characterdata.rs | |
parent | fd70b366aeada7f8cb4b2457c04fd07f0ea9b143 (diff) | |
download | servo-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.rs | 7 |
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> { |