aboutsummaryrefslogtreecommitdiffstats
path: root/components/layout/wrapper.rs
diff options
context:
space:
mode:
authorbors-servo <lbergstrom+bors@mozilla.com>2016-06-13 09:21:45 -0500
committerGitHub <noreply@github.com>2016-06-13 09:21:45 -0500
commite0772c59a69db13ec2650c41b16f455df5d8064e (patch)
treebc8734be85d0fddef8ff8ac4ab7b4e3e6bd61cf8 /components/layout/wrapper.rs
parente32b2c9ddf7f6c44057812d7840e2e93ce5eb7bd (diff)
parente723d72570226e4bd031037713d9ab8d1e5201f4 (diff)
downloadservo-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.rs27
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