diff options
-rw-r--r-- | components/layout/layout_task.rs | 4 | ||||
-rw-r--r-- | components/layout/parallel.rs | 10 |
2 files changed, 8 insertions, 6 deletions
diff --git a/components/layout/layout_task.rs b/components/layout/layout_task.rs index 58a12cf9472..e3349ef19de 100644 --- a/components/layout/layout_task.rs +++ b/components/layout/layout_task.rs @@ -19,7 +19,7 @@ use fragment::{Fragment, FragmentBorderBoxIterator}; use incremental::{LayoutDamageComputation, REFLOW, REFLOW_ENTIRE_DOCUMENT, REPAINT}; use layout_debug; use opaque_node::OpaqueNodeMethods; -use parallel::{self, UnsafeFlow}; +use parallel::{self, WorkQueueData}; use sequential; use wrapper::LayoutNode; @@ -109,7 +109,7 @@ pub struct LayoutTaskData { pub stylist: Box<Stylist>, /// The workers that we use for parallel operation. - pub parallel_traversal: Option<WorkQueue<SharedLayoutContextWrapper, UnsafeFlow>>, + pub parallel_traversal: Option<WorkQueue<SharedLayoutContextWrapper, WorkQueueData>>, /// The dirty rect. Used during display list construction. pub dirty: Rect<Au>, diff --git a/components/layout/parallel.rs b/components/layout/parallel.rs index 1792e41aa6d..3e186f06d95 100644 --- a/components/layout/parallel.rs +++ b/components/layout/parallel.rs @@ -28,6 +28,8 @@ use util::workqueue::{WorkQueue, WorkUnit, WorkerProxy}; const CHUNK_SIZE: usize = 64; +pub struct WorkQueueData(usize, usize); + #[allow(dead_code)] fn static_assertion(node: UnsafeLayoutNode) { unsafe { @@ -443,7 +445,7 @@ fn build_display_list(unsafe_flow: UnsafeFlow, } fn run_queue_with_custom_work_data_type<To,F>( - queue: &mut WorkQueue<SharedLayoutContextWrapper,UnsafeLayoutNode>, + queue: &mut WorkQueue<SharedLayoutContextWrapper, WorkQueueData>, callback: F) where To: 'static + Send, F: FnOnce(&mut WorkQueue<SharedLayoutContextWrapper,To>) { unsafe { @@ -455,7 +457,7 @@ fn run_queue_with_custom_work_data_type<To,F>( pub fn traverse_dom_preorder(root: LayoutNode, shared_layout_context: &SharedLayoutContext, - queue: &mut WorkQueue<SharedLayoutContextWrapper, UnsafeLayoutNode>) { + queue: &mut WorkQueue<SharedLayoutContextWrapper, WorkQueueData>) { queue.data = SharedLayoutContextWrapper(shared_layout_context as *const _); run_queue_with_custom_work_data_type(queue, |queue| { @@ -473,7 +475,7 @@ pub fn traverse_flow_tree_preorder( profiler_metadata: ProfilerMetadata, time_profiler_chan: time::ProfilerChan, shared_layout_context: &SharedLayoutContext, - queue: &mut WorkQueue<SharedLayoutContextWrapper,UnsafeLayoutNode>) { + queue: &mut WorkQueue<SharedLayoutContextWrapper, WorkQueueData>) { if opts::get().bubble_inline_sizes_separately { let layout_context = LayoutContext::new(shared_layout_context); let bubble_inline_sizes = BubbleISizes { layout_context: &layout_context }; @@ -500,7 +502,7 @@ pub fn build_display_list_for_subtree( profiler_metadata: ProfilerMetadata, time_profiler_chan: time::ProfilerChan, shared_layout_context: &SharedLayoutContext, - queue: &mut WorkQueue<SharedLayoutContextWrapper,UnsafeLayoutNode>) { + queue: &mut WorkQueue<SharedLayoutContextWrapper, WorkQueueData>) { queue.data = SharedLayoutContextWrapper(shared_layout_context as *const _); run_queue_with_custom_work_data_type(queue, |queue| { |