diff options
author | Emilio Cobos Álvarez <emilio@crisal.io> | 2017-05-21 17:35:47 +0200 |
---|---|---|
committer | Emilio Cobos Álvarez <emilio@crisal.io> | 2017-05-21 17:40:33 +0200 |
commit | a8fe5d65d4bd620416b37dc8718f3b272edbaced (patch) | |
tree | c5412153e688882f6f15b8589a84dee7b8d441d1 /components/script/layout_wrapper.rs | |
parent | 3d40b516c8ac6e946cadace2378581cbac7b1e1b (diff) | |
download | servo-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.rs | 6 |
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() } } |