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-04 11:34:37 +0100 |
commit | f993693eb2adb314edcac1d75ab5fccf866d091a (patch) | |
tree | 4b395c38439f148cd092beac5879da23f493486d | |
parent | 93272f46a5e4a2e6bd39800f577197a52d251f49 (diff) | |
download | servo-f993693eb2adb314edcac1d75ab5fccf866d091a.tar.gz servo-f993693eb2adb314edcac1d75ab5fccf866d091a.zip |
style: Introduce TNode::is_in_document.
MozReview-Commit-ID: BrhhoOghtUL
Signed-off-by: Emilio Cobos Álvarez <emilio@crisal.io>
-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()) } |