aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/layout_wrapper.rs
diff options
context:
space:
mode:
authorEmilio Cobos Álvarez <emilio@crisal.io>2017-05-21 17:35:47 +0200
committerEmilio Cobos Álvarez <emilio@crisal.io>2017-05-21 17:40:33 +0200
commita8fe5d65d4bd620416b37dc8718f3b272edbaced (patch)
treec5412153e688882f6f15b8589a84dee7b8d441d1 /components/script/layout_wrapper.rs
parent3d40b516c8ac6e946cadace2378581cbac7b1e1b (diff)
downloadservo-a8fe5d65d4bd620416b37dc8718f3b272edbaced.tar.gz
servo-a8fe5d65d4bd620416b37dc8718f3b272edbaced.zip
layout: Stop mutating the style data from layout.
This is part of #16982. Right now we have some code that tries to cache stuff in the style data during layout. This code is extremely rarely executed, only for `<details>` and `<summary>`. I think if we really really want to cache these, we should find a place in the layout data for it. For now, let's move it away (and all the other layout code) from mutating the style data from layout.
Diffstat (limited to 'components/script/layout_wrapper.rs')
-rw-r--r--components/script/layout_wrapper.rs6
1 files changed, 4 insertions, 2 deletions
diff --git a/components/script/layout_wrapper.rs b/components/script/layout_wrapper.rs
index fca0f0949eb..5241d01785d 100644
--- a/components/script/layout_wrapper.rs
+++ b/components/script/layout_wrapper.rs
@@ -30,7 +30,7 @@
#![allow(unsafe_code)]
-use atomic_refcell::AtomicRefCell;
+use atomic_refcell::{AtomicRef, AtomicRefCell};
use dom::bindings::inheritance::{CharacterDataTypeId, ElementTypeId};
use dom::bindings::inheritance::{HTMLElementTypeId, NodeTypeId};
use dom::bindings::js::LayoutJS;
@@ -1092,8 +1092,10 @@ impl<'le> ThreadSafeLayoutElement for ServoThreadSafeLayoutElement<'le> {
self.element.get_attr(namespace, name)
}
- fn get_style_data(&self) -> Option<&AtomicRefCell<ElementData>> {
+ fn style_data(&self) -> AtomicRef<ElementData> {
self.element.get_data()
+ .expect("Unstyled layout node?")
+ .borrow()
}
}