diff options
author | Patrick Walton <pcwalton@mimiga.net> | 2014-01-29 15:24:42 -0800 |
---|---|---|
committer | Patrick Walton <pcwalton@mimiga.net> | 2014-01-30 13:09:01 -0800 |
commit | 0e20ec02c58dbd744c22ee4c998b8cc5c48153fd (patch) | |
tree | c3cba47414a235c76b8fd159f07066a1e3b93482 /src/components/main/layout/parallel.rs | |
parent | 6c2e48f04d83cb0491138d8cc8a5c81ebc160cc6 (diff) | |
download | servo-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.rs | 16 |
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() { |