diff options
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>() { |