fixup! style: Distinguish between the tree structures used for traversal and selector matching. draft
authorCameron McCormack <cam@mcc.id.au>
Fri, 09 Jun 2017 13:50:50 +0800
changeset 591537 eae0475ea3a26a13112ac0e30dae5be9c62dc53d
parent 591536 0e047c5148bb30c67b2b3cf78a5fd087670697c8
child 591538 51985af543acb92c4746355a7eeb785f3bd0a43f
push id63078
push userbmo:cam@mcc.id.au
push dateFri, 09 Jun 2017 06:22:34 +0000
milestone55.0a1
fixup! style: Distinguish between the tree structures used for traversal and selector matching. MozReview-Commit-ID: 3Qa2soqVSNn
servo/components/script/layout_wrapper.rs
--- a/servo/components/script/layout_wrapper.rs
+++ b/servo/components/script/layout_wrapper.rs
@@ -160,22 +160,36 @@ impl<'ln> TNode for ServoLayoutNode<'ln>
         }
     }
 
     unsafe fn from_unsafe(n: &UnsafeNode) -> Self {
         let (node, _) = *n;
         transmute(node)
     }
 
-    fn children(self) -> LayoutIterator<ServoChildrenIterator<'ln>> {
+    fn parent_node(&self) -> Option<ServoLayoutNode<'ln>> {
+        unsafe {
+            self.node.parent_node_ref().map(|node| self.new_with_this_lifetime(&node))
+        }
+    }
+
+    fn children(&self) -> LayoutIterator<ServoChildrenIterator<'ln>> {
         LayoutIterator(ServoChildrenIterator {
             current: self.first_child(),
         })
     }
 
+    fn traversal_parent(&self) -> Option<ServoLayoutElement<'ln>> {
+        self.parent_node().and_then(|n| n.as_element())
+    }
+
+    fn traversal_children(&self) -> LayoutIterator<ServoChildrenIterator<'ln>> {
+        self.children()
+    }
+
     fn opaque(&self) -> OpaqueNode {
         unsafe { self.get_jsmanaged().opaque() }
     }
 
     fn debug_id(self) -> usize {
         self.opaque().0
     }
 
@@ -194,22 +208,16 @@ impl<'ln> TNode for ServoLayoutNode<'ln>
     fn can_be_fragmented(&self) -> bool {
         unsafe { self.node.get_flag(CAN_BE_FRAGMENTED) }
     }
 
     unsafe fn set_can_be_fragmented(&self, value: bool) {
         self.node.set_flag(CAN_BE_FRAGMENTED, value)
     }
 
-    fn parent_node(&self) -> Option<ServoLayoutNode<'ln>> {
-        unsafe {
-            self.node.parent_node_ref().map(|node| self.new_with_this_lifetime(&node))
-        }
-    }
-
     fn is_in_doc(&self) -> bool {
         unsafe { (*self.node.unsafe_get()).is_in_doc() }
     }
 }
 
 pub struct ServoChildrenIterator<'a> {
     current: Option<ServoLayoutNode<'a>>,
 }