diff options
Diffstat (limited to 'components/layout/parallel.rs')
-rw-r--r-- | components/layout/parallel.rs | 18 |
1 files changed, 10 insertions, 8 deletions
diff --git a/components/layout/parallel.rs b/components/layout/parallel.rs index d55420d2f7e..df3b340810c 100644 --- a/components/layout/parallel.rs +++ b/components/layout/parallel.rs @@ -224,12 +224,12 @@ trait ParallelPostorderFlowTraversal : PostorderFlowTraversal { let flow: &mut FlowRef = mem::transmute(&unsafe_flow); // Perform the appropriate traversal. - if self.should_process(flow.get_mut()) { - self.process(flow.get_mut()); + if self.should_process(flow.deref_mut()) { + self.process(flow.deref_mut()); } - let base = flow::mut_base(flow.get_mut()); + let base = flow::mut_base(flow.deref_mut()); // Reset the count of children for the next layout traversal. base.parallel.children_count.store(base.children.len() as int, Relaxed); @@ -245,7 +245,7 @@ trait ParallelPostorderFlowTraversal : PostorderFlowTraversal { // of our parent to finish processing? If so, we can continue // on with our parent; otherwise, we've gotta wait. let parent: &mut FlowRef = mem::transmute(&unsafe_parent); - let parent_base = flow::mut_base(parent.get_mut()); + let parent_base = flow::mut_base(parent.deref_mut()); if parent_base.parallel.children_count.fetch_sub(1, SeqCst) == 1 { // We were the last child of our parent. Reflow our parent. unsafe_flow = unsafe_parent @@ -279,13 +279,13 @@ trait ParallelPreorderFlowTraversal : PreorderFlowTraversal { // Get a real flow. let flow: &mut FlowRef = mem::transmute(&unsafe_flow); - if self.should_process(flow.get_mut()) { + if self.should_process(flow.deref_mut()) { // Perform the appropriate traversal. - self.process(flow.get_mut()); + self.process(flow.deref_mut()); } // Possibly enqueue the children. - for kid in flow::child_iter(flow.get_mut()) { + for kid in flow::child_iter(flow.deref_mut()) { had_children = true; proxy.push(WorkUnit { fun: top_down_func, @@ -397,9 +397,11 @@ fn build_display_list(unsafe_flow: UnsafeFlow, proxy: &mut WorkerProxy<*const SharedLayoutContext, UnsafeFlow>) { let shared_layout_context = unsafe { &**proxy.user_data() }; let layout_context = LayoutContext::new(shared_layout_context); + let build_display_list_traversal = BuildDisplayList { layout_context: &layout_context, }; + build_display_list_traversal.run_parallel(unsafe_flow, proxy); } @@ -428,7 +430,7 @@ pub fn traverse_flow_tree_preorder(root: &mut FlowRef, if shared_layout_context.opts.bubble_inline_sizes_separately { let layout_context = LayoutContext::new(shared_layout_context); let bubble_inline_sizes = BubbleISizes { layout_context: &layout_context }; - root.get_mut().traverse_postorder(&bubble_inline_sizes); + root.traverse_postorder(&bubble_inline_sizes); } queue.data = shared_layout_context as *const _; |