diff options
author | bors-servo <lbergstrom+bors@mozilla.com> | 2016-11-01 13:05:46 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2016-11-01 13:05:46 -0500 |
commit | cf9d282914c65d712635b14636a62003b863bdf0 (patch) | |
tree | cf8a9fc2a34de25c56084c3dbd399c244c5778c8 /components/script/dom | |
parent | 291f393723d22a582bb9a49ef7294ec14eca2127 (diff) | |
parent | fb70ee2c0c907fc079350baa116f7315cf8869e3 (diff) | |
download | servo-cf9d282914c65d712635b14636a62003b863bdf0.tar.gz servo-cf9d282914c65d712635b14636a62003b863bdf0.zip |
Auto merge of #14010 - bholley:element_data_management, r=emilio
incremental restyle: Centralize pre-styling setup, eliminate RestyleResult, and drop data for display:none subtrees
<!-- Reviewable:start -->
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/14010)
<!-- Reviewable:end -->
Diffstat (limited to 'components/script/dom')
-rw-r--r-- | components/script/dom/node.rs | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/components/script/dom/node.rs b/components/script/dom/node.rs index ec2c45bfe8c..767a3132eb3 100644 --- a/components/script/dom/node.rs +++ b/components/script/dom/node.rs @@ -952,6 +952,7 @@ pub trait LayoutNodeHelpers { unsafe fn get_style_and_layout_data(&self) -> Option<OpaqueStyleAndLayoutData>; unsafe fn init_style_and_layout_data(&self, OpaqueStyleAndLayoutData); + unsafe fn take_style_and_layout_data(&self) -> OpaqueStyleAndLayoutData; fn text_content(&self) -> String; fn selection(&self) -> Option<Range<usize>>; @@ -1051,6 +1052,14 @@ impl LayoutNodeHelpers for LayoutJS<Node> { (*self.unsafe_get()).style_and_layout_data.set(Some(val)); } + #[inline] + #[allow(unsafe_code)] + unsafe fn take_style_and_layout_data(&self) -> OpaqueStyleAndLayoutData { + let val = (*self.unsafe_get()).style_and_layout_data.get().unwrap(); + (*self.unsafe_get()).style_and_layout_data.set(None); + val + } + #[allow(unsafe_code)] fn text_content(&self) -> String { if let Some(text) = self.downcast::<Text>() { |