diff options
author | bors-servo <metajack+bors@gmail.com> | 2015-07-03 07:22:44 -0600 |
---|---|---|
committer | bors-servo <metajack+bors@gmail.com> | 2015-07-03 07:22:44 -0600 |
commit | d09881b051e01f145bf701d48d6d91167bccbe30 (patch) | |
tree | fddbd8a6c796c057b28ddd37cc473991f35de9a9 /components/layout | |
parent | 59d3b45b74a22fa807872b78e881991e86f7c6ee (diff) | |
parent | 41da4fceee653366bb709539c1ce3a873a08b695 (diff) | |
download | servo-d09881b051e01f145bf701d48d6d91167bccbe30.tar.gz servo-d09881b051e01f145bf701d48d6d91167bccbe30.zip |
Auto merge of #6513 - Ms2ger:workqueue-data, r=pcwalton
Remove the data field from WorkQueue.
<!-- Reviewable:start -->
[<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/6513)
<!-- Reviewable:end -->
Diffstat (limited to 'components/layout')
-rw-r--r-- | components/layout/layout_task.rs | 3 | ||||
-rw-r--r-- | components/layout/parallel.rs | 32 |
2 files changed, 11 insertions, 24 deletions
diff --git a/components/layout/layout_task.rs b/components/layout/layout_task.rs index e3349ef19de..172fcf2ed3f 100644 --- a/components/layout/layout_task.rs +++ b/components/layout/layout_task.rs @@ -300,8 +300,7 @@ impl LayoutTask { opts::get().initial_window_size.as_f32() * ScaleFactor::new(1.0)); let parallel_traversal = if opts::get().layout_threads != 1 { Some(WorkQueue::new("LayoutWorker", task_state::LAYOUT, - opts::get().layout_threads, - SharedLayoutContextWrapper(ptr::null()))) + opts::get().layout_threads)) } else { None }; diff --git a/components/layout/parallel.rs b/components/layout/parallel.rs index 3e186f06d95..65bf7fb0eae 100644 --- a/components/layout/parallel.rs +++ b/components/layout/parallel.rs @@ -21,7 +21,6 @@ use wrapper::{PreorderDomTraversal, PostorderDomTraversal}; use profile_traits::time::{self, ProfilerMetadata, profile}; use std::mem; -use std::ptr; use std::sync::atomic::{AtomicIsize, Ordering}; use util::opts; use util::workqueue::{WorkQueue, WorkUnit, WorkerProxy}; @@ -446,28 +445,25 @@ fn build_display_list(unsafe_flow: UnsafeFlow, fn run_queue_with_custom_work_data_type<To,F>( queue: &mut WorkQueue<SharedLayoutContextWrapper, WorkQueueData>, - callback: F) + callback: F, + shared_layout_context: &SharedLayoutContext) where To: 'static + Send, F: FnOnce(&mut WorkQueue<SharedLayoutContextWrapper,To>) { - unsafe { - let queue: &mut WorkQueue<SharedLayoutContextWrapper,To> = mem::transmute(queue); - callback(queue); - queue.run(); - } + let queue: &mut WorkQueue<SharedLayoutContextWrapper,To> = unsafe { + mem::transmute(queue) + }; + callback(queue); + queue.run(SharedLayoutContextWrapper(shared_layout_context as *const _)); } pub fn traverse_dom_preorder(root: LayoutNode, shared_layout_context: &SharedLayoutContext, queue: &mut WorkQueue<SharedLayoutContextWrapper, WorkQueueData>) { - queue.data = SharedLayoutContextWrapper(shared_layout_context as *const _); - run_queue_with_custom_work_data_type(queue, |queue| { queue.push(WorkUnit { fun: recalc_style, data: (box vec![layout_node_to_unsafe_layout_node(&root)], 0), }); - }); - - queue.data = SharedLayoutContextWrapper(ptr::null()); + }, shared_layout_context); } pub fn traverse_flow_tree_preorder( @@ -482,8 +478,6 @@ pub fn traverse_flow_tree_preorder( root.traverse_postorder(&bubble_inline_sizes); } - queue.data = SharedLayoutContextWrapper(shared_layout_context as *const _); - run_queue_with_custom_work_data_type(queue, |queue| { profile(time::ProfilerCategory::LayoutParallelWarmup, profiler_metadata, time_profiler_chan, || { @@ -492,9 +486,7 @@ pub fn traverse_flow_tree_preorder( data: (box vec![mut_owned_flow_to_unsafe_flow(root)], 0), }) }); - }); - - queue.data = SharedLayoutContextWrapper(ptr::null()) + }, shared_layout_context); } pub fn build_display_list_for_subtree( @@ -503,8 +495,6 @@ pub fn build_display_list_for_subtree( time_profiler_chan: time::ProfilerChan, shared_layout_context: &SharedLayoutContext, queue: &mut WorkQueue<SharedLayoutContextWrapper, WorkQueueData>) { - queue.data = SharedLayoutContextWrapper(shared_layout_context as *const _); - run_queue_with_custom_work_data_type(queue, |queue| { profile(time::ProfilerCategory::LayoutParallelWarmup, profiler_metadata, time_profiler_chan, || { @@ -513,7 +503,5 @@ pub fn build_display_list_for_subtree( data: (box vec![mut_owned_flow_to_unsafe_flow(root)], 0), }) }); - }); - - queue.data = SharedLayoutContextWrapper(ptr::null()) + }, shared_layout_context); } |