aboutsummaryrefslogtreecommitdiffstats
path: root/src/components/main/layout/parallel.rs
diff options
context:
space:
mode:
authorPatrick Walton <pcwalton@mimiga.net>2014-01-29 15:24:42 -0800
committerPatrick Walton <pcwalton@mimiga.net>2014-01-30 13:09:01 -0800
commit0e20ec02c58dbd744c22ee4c998b8cc5c48153fd (patch)
treec3cba47414a235c76b8fd159f07066a1e3b93482 /src/components/main/layout/parallel.rs
parent6c2e48f04d83cb0491138d8cc8a5c81ebc160cc6 (diff)
downloadservo-0e20ec02c58dbd744c22ee4c998b8cc5c48153fd.tar.gz
servo-0e20ec02c58dbd744c22ee4c998b8cc5c48153fd.zip
layout: Make box building thread safe by pushing down styles into
non-element children during the cascade. Fetching them from the parent isn't thread-safe. Adds a test for anonymous block box inheritance.
Diffstat (limited to 'src/components/main/layout/parallel.rs')
-rw-r--r--src/components/main/layout/parallel.rs16
1 files changed, 8 insertions, 8 deletions
diff --git a/src/components/main/layout/parallel.rs b/src/components/main/layout/parallel.rs
index 859a3839333..d7127f0c50a 100644
--- a/src/components/main/layout/parallel.rs
+++ b/src/components/main/layout/parallel.rs
@@ -134,16 +134,16 @@ fn match_and_cascade_node(unsafe_layout_node: UnsafeLayoutNode,
// Perform the CSS selector matching.
let stylist: &Stylist = cast::transmute(layout_context.stylist);
node.match_node(stylist);
-
- // Perform the CSS cascade.
- let parent_opt = if OpaqueNode::from_layout_node(&node) == layout_context.reflow_root {
- None
- } else {
- node.parent_node()
- };
- node.cascade_node(parent_opt);
}
+ // Perform the CSS cascade.
+ let parent_opt = if OpaqueNode::from_layout_node(&node) == layout_context.reflow_root {
+ None
+ } else {
+ node.parent_node()
+ };
+ node.cascade_node(parent_opt);
+
// Enqueue kids.
let mut child_count = 0;
for kid in node.children() {