style: Introduce TNode::is_in_document.

MozReview-Commit-ID: BrhhoOghtUL
Signed-off-by: Emilio Cobos Álvarez <emilio@crisal.io>
This commit is contained in:
Emilio Cobos Álvarez 2017-10-27 12:18:27 +02:00
parent 93272f46a5
commit f993693eb2
No known key found for this signature in database
GPG key ID: 056B727BB9C1027C
3 changed files with 13 additions and 1 deletions

View file

@ -213,6 +213,10 @@ impl<'ln> TNode for ServoLayoutNode<'ln> {
unsafe { self.node.get_flag(NodeFlags::CAN_BE_FRAGMENTED) } unsafe { self.node.get_flag(NodeFlags::CAN_BE_FRAGMENTED) }
} }
fn is_in_document(&self) -> bool {
unsafe { self.node.get_flag(NodeFlags::IS_IN_DOC) }
}
unsafe fn set_can_be_fragmented(&self, value: bool) { unsafe fn set_can_be_fragmented(&self, value: bool) {
self.node.set_flag(NodeFlags::CAN_BE_FRAGMENTED, value) self.node.set_flag(NodeFlags::CAN_BE_FRAGMENTED, value)
} }
@ -417,7 +421,7 @@ impl<'le> TElement for ServoLayoutElement<'le> {
} }
unsafe fn set_dirty_descendants(&self) { unsafe fn set_dirty_descendants(&self) {
debug_assert!(self.as_node().node.get_flag(NodeFlags::IS_IN_DOC)); debug_assert!(self.as_node().is_in_document());
self.as_node().node.set_flag(NodeFlags::HAS_DIRTY_DESCENDANTS, true) self.as_node().node.set_flag(NodeFlags::HAS_DIRTY_DESCENDANTS, true)
} }

View file

@ -191,6 +191,9 @@ pub trait TNode : Sized + Copy + Clone + Debug + NodeInfo + PartialEq {
DomChildren(self.first_child()) DomChildren(self.first_child())
} }
/// Returns whether the node is attached to a document.
fn is_in_document(&self) -> bool;
/// Iterate over the DOM children of a node, in preorder. /// Iterate over the DOM children of a node, in preorder.
fn dom_descendants(&self) -> DomDescendants<Self> { fn dom_descendants(&self) -> DomDescendants<Self> {
DomDescendants { DomDescendants {

View file

@ -292,6 +292,11 @@ impl<'ln> TNode for GeckoNode<'ln> {
GeckoDocument(unsafe { &*self.node_info().mDocument }) GeckoDocument(unsafe { &*self.node_info().mDocument })
} }
#[inline]
fn is_in_document(&self) -> bool {
self.get_bool_flag(nsINode_BooleanFlag::IsInDocument)
}
fn traversal_parent(&self) -> Option<GeckoElement<'ln>> { fn traversal_parent(&self) -> Option<GeckoElement<'ln>> {
self.flattened_tree_parent().and_then(|n| n.as_element()) self.flattened_tree_parent().and_then(|n| n.as_element())
} }