aboutsummaryrefslogtreecommitdiffstats
path: root/components/layout/flow.rs
diff options
context:
space:
mode:
authorMartin Robinson <mrobinson@igalia.com>2017-08-30 20:03:44 +0200
committerMartin Robinson <mrobinson@igalia.com>2017-09-12 17:15:06 +0200
commitee46bc57ed1fcd4c26748e1ba3da47634bbf7be4 (patch)
tree7e6bd6133552c4085593d17f32f4869080bd5b4a /components/layout/flow.rs
parentbffe158fa40fda72e74afde2407cc02cd84d495d (diff)
downloadservo-ee46bc57ed1fcd4c26748e1ba3da47634bbf7be4.tar.gz
servo-ee46bc57ed1fcd4c26748e1ba3da47634bbf7be4.zip
Separate stacking context collection and display list building state
These are two different passes during layout, but previously they shared a state object. While some of the members are the same, many are different so we separate them out into two separate objects. We also change the HashMaps of these state objects to use the FnvHashMap.
Diffstat (limited to 'components/layout/flow.rs')
-rw-r--r--components/layout/flow.rs7
1 files changed, 4 insertions, 3 deletions
diff --git a/components/layout/flow.rs b/components/layout/flow.rs
index f4c545ec730..24a8a6c3cb2 100644
--- a/components/layout/flow.rs
+++ b/components/layout/flow.rs
@@ -28,7 +28,7 @@
use app_units::Au;
use block::{BlockFlow, FormattingContextType};
use context::LayoutContext;
-use display_list_builder::DisplayListBuildState;
+use display_list_builder::{DisplayListBuildState, StackingContextCollectionState};
use euclid::{Transform3D, Point2D, Vector2D, Rect, Size2D};
use flex::FlexFlow;
use floats::{Floats, SpeculatedFloatPlacement};
@@ -223,7 +223,7 @@ pub trait Flow: fmt::Debug + Sync + Send + 'static {
None
}
- fn collect_stacking_contexts(&mut self, state: &mut DisplayListBuildState);
+ fn collect_stacking_contexts(&mut self, state: &mut StackingContextCollectionState);
/// If this is a float, places it. The default implementation does nothing.
fn place_float_if_applicable<'a>(&mut self) {}
@@ -1106,7 +1106,8 @@ impl BaseFlow {
return self as *const BaseFlow as usize;
}
- pub fn collect_stacking_contexts_for_children(&mut self, state: &mut DisplayListBuildState) {
+ pub fn collect_stacking_contexts_for_children(&mut self,
+ state: &mut StackingContextCollectionState) {
for kid in self.children.iter_mut() {
kid.collect_stacking_contexts(state);
}