aboutsummaryrefslogtreecommitdiffstats
path: root/components/style/traversal.rs
diff options
context:
space:
mode:
authorEmilio Cobos Álvarez <emilio@crisal.io>2017-08-25 13:06:07 -0700
committerBobby Holley <bobbyholley@gmail.com>2017-08-25 18:39:20 -0700
commit8c3cc9ba1f75d24fd506a3763559a2155260ec4d (patch)
tree273ea1e30e19f97dc9e897962b07253730adff69 /components/style/traversal.rs
parent2136dd2bb7fc9d78f796de4a49e01339bbbd2d31 (diff)
downloadservo-8c3cc9ba1f75d24fd506a3763559a2155260ec4d.tar.gz
servo-8c3cc9ba1f75d24fd506a3763559a2155260ec4d.zip
Hook the recursive invalidation traversal up to the stack checker machinery.
MozReview-Commit-ID: 3tX3gHFTBT
Diffstat (limited to 'components/style/traversal.rs')
-rw-r--r--components/style/traversal.rs10
1 files changed, 7 insertions, 3 deletions
diff --git a/components/style/traversal.rs b/components/style/traversal.rs
index 07359379105..a3fe06f3fef 100644
--- a/components/style/traversal.rs
+++ b/components/style/traversal.rs
@@ -139,7 +139,7 @@ pub trait DomTraversal<E: TElement> : Sync {
fn pre_traverse(
root: E,
shared_context: &SharedStyleContext,
- traversal_flags: TraversalFlags
+ traversal_flags: TraversalFlags,
) -> PreTraverseToken {
// If this is an unstyled-only traversal, the caller has already verified
// that there's something to traverse, and we don't need to do any
@@ -155,7 +155,7 @@ pub trait DomTraversal<E: TElement> : Sync {
if let Some(ref mut data) = data {
// Invalidate our style, and the one of our siblings and descendants
// as needed.
- data.invalidate_style_if_needed(root, shared_context);
+ data.invalidate_style_if_needed(root, shared_context, None);
// Make sure we don't have any stale RECONSTRUCTED_ANCESTOR bits from
// the last traversal (at a potentially-higher root). From the
@@ -828,7 +828,11 @@ where
// as needed.
//
// NB: This will be a no-op if there's no snapshot.
- child_data.invalidate_style_if_needed(child, &context.shared);
+ child_data.invalidate_style_if_needed(
+ child,
+ &context.shared,
+ Some(&context.thread_local.stack_limit_checker)
+ );
}
if D::element_needs_traversal(child, flags, child_data.map(|d| &*d), Some(data)) {