diff options
-rw-r--r-- | components/layout/parallel.rs | 60 |
1 files changed, 31 insertions, 29 deletions
diff --git a/components/layout/parallel.rs b/components/layout/parallel.rs index 6d00c4a4c44..3a122a8f88d 100644 --- a/components/layout/parallel.rs +++ b/components/layout/parallel.rs @@ -242,41 +242,43 @@ trait ParallelPostorderFlowTraversal : PostorderFlowTraversal { mut unsafe_flow: UnsafeFlow, _: &mut WorkerProxy<SharedLayoutContext,UnsafeFlowList>) { loop { - unsafe { - // Get a real flow. - let flow: &mut FlowRef = mem::transmute(&mut unsafe_flow); + // Get a real flow. + let flow: &mut FlowRef = unsafe { + mem::transmute(&mut unsafe_flow) + }; - // Perform the appropriate traversal. - if self.should_process(&mut **flow) { - self.process(&mut **flow); - } + // Perform the appropriate traversal. + if self.should_process(&mut **flow) { + self.process(&mut **flow); + } - let base = flow::mut_base(&mut **flow); + let base = flow::mut_base(&mut **flow); - // Reset the count of children for the next layout traversal. - base.parallel.children_count.store(base.children.len() as isize, - Ordering::Relaxed); + // Reset the count of children for the next layout traversal. + base.parallel.children_count.store(base.children.len() as isize, + Ordering::Relaxed); - // Possibly enqueue the parent. - let mut unsafe_parent = base.parallel.parent; - if unsafe_parent == null_unsafe_flow() { - // We're done! - break - } + // Possibly enqueue the parent. + let mut unsafe_parent = base.parallel.parent; + if unsafe_parent == null_unsafe_flow() { + // We're done! + break + } - // No, we're not at the root yet. Then are we the last child - // 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(&mut unsafe_parent); - let parent_base = flow::mut_base(&mut **parent); - if parent_base.parallel.children_count.fetch_sub(1, Ordering::Relaxed) == 1 { - // We were the last child of our parent. Reflow our parent. - unsafe_flow = unsafe_parent - } else { - // Stop. - break - } + // No, we're not at the root yet. Then are we the last child + // of our parent to finish processing? If so, we can continue + // on with our parent; otherwise, we've gotta wait. + let parent: &mut FlowRef = unsafe { + mem::transmute(&mut unsafe_parent) + }; + let parent_base = flow::mut_base(&mut **parent); + if parent_base.parallel.children_count.fetch_sub(1, Ordering::Relaxed) == 1 { + // We were the last child of our parent. Reflow our parent. + unsafe_flow = unsafe_parent + } else { + // Stop. + break } } } |