aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEmilio Cobos Álvarez <emilio@crisal.io>2017-10-27 12:18:27 +0200
committerEmilio Cobos Álvarez <emilio@crisal.io>2017-11-04 11:34:37 +0100
commitf993693eb2adb314edcac1d75ab5fccf866d091a (patch)
tree4b395c38439f148cd092beac5879da23f493486d
parent93272f46a5e4a2e6bd39800f577197a52d251f49 (diff)
downloadservo-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.rs6
-rw-r--r--components/style/dom.rs3
-rw-r--r--components/style/gecko/wrapper.rs5
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())
}