aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/dom
diff options
context:
space:
mode:
authorbors-servo <lbergstrom+bors@mozilla.com>2016-11-01 13:05:46 -0500
committerGitHub <noreply@github.com>2016-11-01 13:05:46 -0500
commitcf9d282914c65d712635b14636a62003b863bdf0 (patch)
treecf8a9fc2a34de25c56084c3dbd399c244c5778c8 /components/script/dom
parent291f393723d22a582bb9a49ef7294ec14eca2127 (diff)
parentfb70ee2c0c907fc079350baa116f7315cf8869e3 (diff)
downloadservo-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.rs9
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>() {