diff options
author | bors-servo <lbergstrom+bors@mozilla.com> | 2016-06-13 09:21:45 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2016-06-13 09:21:45 -0500 |
commit | e0772c59a69db13ec2650c41b16f455df5d8064e (patch) | |
tree | bc8734be85d0fddef8ff8ac4ab7b4e3e6bd61cf8 /components/layout/wrapper.rs | |
parent | e32b2c9ddf7f6c44057812d7840e2e93ce5eb7bd (diff) | |
parent | e723d72570226e4bd031037713d9ab8d1e5201f4 (diff) | |
download | servo-e0772c59a69db13ec2650c41b16f455df5d8064e.tar.gz servo-e0772c59a69db13ec2650c41b16f455df5d8064e.zip |
Auto merge of #11737 - Ms2ger:init-data, r=pcwalton
Move the initialize_data method out of the TNode trait.
<!-- Reviewable:start -->
This change is [<img src="https://reviewable.io/review_button.svg" height="35" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/11737)
<!-- Reviewable:end -->
Diffstat (limited to 'components/layout/wrapper.rs')
-rw-r--r-- | components/layout/wrapper.rs | 27 |
1 files changed, 13 insertions, 14 deletions
diff --git a/components/layout/wrapper.rs b/components/layout/wrapper.rs index 303c9f76943..3c18e909bae 100644 --- a/components/layout/wrapper.rs +++ b/components/layout/wrapper.rs @@ -120,6 +120,19 @@ impl<'ln> ServoLayoutNode<'ln> { chain: self.chain, } } + + pub fn initialize_data(self) { + if unsafe { self.borrow_data_unchecked() }.is_none() { + let ptr: NonOpaqueStyleAndLayoutData = + Box::into_raw(box RefCell::new(PrivateLayoutData::new())); + let opaque = OpaqueStyleAndLayoutData { + ptr: unsafe { NonZero::new(ptr as *mut ()) } + }; + unsafe { + self.node.init_style_and_layout_data(opaque); + } + } + } } impl<'ln> TNode for ServoLayoutNode<'ln> { @@ -158,20 +171,6 @@ impl<'ln> TNode for ServoLayoutNode<'ln> { OpaqueNodeMethods::from_jsmanaged(unsafe { self.get_jsmanaged() }) } - fn initialize_data(self) { - let has_data = unsafe { self.borrow_data_unchecked().is_some() }; - if !has_data { - let ptr: NonOpaqueStyleAndLayoutData = - Box::into_raw(box RefCell::new(PrivateLayoutData::new())); - let opaque = OpaqueStyleAndLayoutData { - ptr: unsafe { NonZero::new(ptr as *mut ()) } - }; - unsafe { - self.node.init_style_and_layout_data(opaque); - } - } - } - fn layout_parent_node(self, reflow_root: OpaqueNode) -> Option<ServoLayoutNode<'ln>> { if self.opaque() == reflow_root { None |