diff options
author | Emilio Cobos Álvarez <emilio@crisal.io> | 2017-10-27 12:18:27 +0200 |
---|---|---|
committer | Emilio Cobos Álvarez <emilio@crisal.io> | 2017-11-03 14:18:43 +0100 |
commit | be1ba90284c93954db8c7210c305576ed374ca02 (patch) | |
tree | b28801cd14a22a9da8e11b162a519d2bea8a1d12 | |
parent | c3876a42a8596838a96b01b11eb7b3ba8702e119 (diff) | |
download | servo-be1ba90284c93954db8c7210c305576ed374ca02.tar.gz servo-be1ba90284c93954db8c7210c305576ed374ca02.zip |
style: Introduce TNode::is_in_document.
MozReview-Commit-ID: BrhhoOghtUL
-rw-r--r-- | components/layout_thread/dom_wrapper.rs | 6 | ||||
-rw-r--r-- | components/style/dom.rs | 3 | ||||
-rw-r--r-- | components/style/gecko/wrapper.rs | 5 |
3 files changed, 13 insertions, 1 deletions
diff --git a/components/layout_thread/dom_wrapper.rs b/components/layout_thread/dom_wrapper.rs index 6433b9f163d..ebf7d12cbae 100644 --- a/components/layout_thread/dom_wrapper.rs +++ b/components/layout_thread/dom_wrapper.rs @@ -213,6 +213,10 @@ impl<'ln> TNode for ServoLayoutNode<'ln> { 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) { 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) { - 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) } diff --git a/components/style/dom.rs b/components/style/dom.rs index 9c49b37f704..24a58a369cc 100644 --- a/components/style/dom.rs +++ b/components/style/dom.rs @@ -191,6 +191,9 @@ pub trait TNode : Sized + Copy + Clone + Debug + NodeInfo + PartialEq { 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. fn dom_descendants(&self) -> DomDescendants<Self> { DomDescendants { diff --git a/components/style/gecko/wrapper.rs b/components/style/gecko/wrapper.rs index a8851fb6e1f..dbecac5133f 100644 --- a/components/style/gecko/wrapper.rs +++ b/components/style/gecko/wrapper.rs @@ -292,6 +292,11 @@ impl<'ln> TNode for GeckoNode<'ln> { 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>> { self.flattened_tree_parent().and_then(|n| n.as_element()) } |