From 8b05833e52fea898e2e917013ddbfcc47061b2c3 Mon Sep 17 00:00:00 2001 From: Ms2ger Date: Wed, 15 Jun 2016 00:56:12 +0100 Subject: [PATCH] Split initialize_data into two. The first one handles the layout-specific part, and calls the second one to handle the script-specific part. --- components/layout/wrapper.rs | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/components/layout/wrapper.rs b/components/layout/wrapper.rs index 8d86459a068..9f6dd2bdaef 100644 --- a/components/layout/wrapper.rs +++ b/components/layout/wrapper.rs @@ -81,6 +81,8 @@ pub trait LayoutNode: TNode { fn get_style_data(&self) -> Option<&RefCell>; + fn init_style_and_layout_data(&self, data: OpaqueStyleAndLayoutData); + /// Similar to borrow_data*, but returns the full PrivateLayoutData rather /// than only the PrivateStyleData. unsafe fn borrow_layout_data_unchecked(&self) -> Option<*const PrivateLayoutData>; @@ -131,9 +133,7 @@ impl<'ln> ServoLayoutNode<'ln> { let opaque = OpaqueStyleAndLayoutData { ptr: unsafe { NonZero::new(ptr as *mut RefCell) } }; - unsafe { - self.node.init_style_and_layout_data(opaque); - } + self.init_style_and_layout_data(opaque); } } } @@ -308,6 +308,12 @@ impl<'ln> LayoutNode for ServoLayoutNode<'ln> { } } + fn init_style_and_layout_data(&self, data: OpaqueStyleAndLayoutData) { + unsafe { + self.get_jsmanaged().init_style_and_layout_data(data); + } + } + unsafe fn borrow_layout_data_unchecked(&self) -> Option<*const PrivateLayoutData> { self.get_jsmanaged().get_style_and_layout_data().map(|opaque| { let container = *opaque.ptr as NonOpaqueStyleAndLayoutData;