From b98a7f27a90b8677a63900a7feaafcd0ee840b39 Mon Sep 17 00:00:00 2001 From: Ms2ger Date: Thu, 25 Jun 2015 22:18:30 +0200 Subject: [PATCH 1/2] Remove a no-op transmute in ParallelPostorderDomTraversal. --- components/layout/parallel.rs | 3 --- 1 file changed, 3 deletions(-) diff --git a/components/layout/parallel.rs b/components/layout/parallel.rs index 9cc60f31aee..89b4e8cecea 100644 --- a/components/layout/parallel.rs +++ b/components/layout/parallel.rs @@ -12,7 +12,6 @@ use context::{LayoutContext, SharedLayoutContextWrapper, SharedLayoutContext}; use flow::{Flow, MutableFlowUtils, PreorderFlowTraversal, PostorderFlowTraversal}; use flow; use flow_ref::FlowRef; -use data::LayoutDataWrapper; use traversal::{BubbleISizes, AssignISizes, AssignBSizesAndStoreOverflow}; use traversal::{ComputeAbsolutePositions, BuildDisplayList}; use traversal::{RecalcStyleForNode, ConstructFlows}; @@ -193,8 +192,6 @@ trait ParallelPostorderDomTraversal : PostorderDomTraversal { unsafe_node = layout_node_to_unsafe_layout_node(&parent); - let parent_layout_data: &LayoutDataWrapper = - mem::transmute(parent_layout_data); if parent_layout_data .data .parallel From b6e5f8e7b6d5b8013cd967a533c9400690f69b0a Mon Sep 17 00:00:00 2001 From: Ms2ger Date: Thu, 25 Jun 2015 22:31:48 +0200 Subject: [PATCH 2/2] Reduce the scope of the unsafe block in ParallelPostorderDomTraversal. --- components/layout/parallel.rs | 29 ++++++++++++++--------------- 1 file changed, 14 insertions(+), 15 deletions(-) diff --git a/components/layout/parallel.rs b/components/layout/parallel.rs index 89b4e8cecea..1792e41aa6d 100644 --- a/components/layout/parallel.rs +++ b/components/layout/parallel.rs @@ -186,22 +186,21 @@ trait ParallelPostorderDomTraversal : PostorderDomTraversal { Some(parent) => parent, }; - unsafe { - let parent_layout_data = - (*parent.borrow_layout_data_unchecked()).as_ref().expect("no layout data"); + let parent_layout_data = unsafe { + &*parent.borrow_layout_data_unchecked() + }; + let parent_layout_data = parent_layout_data.as_ref().expect("no layout data"); + unsafe_node = layout_node_to_unsafe_layout_node(&parent); - unsafe_node = layout_node_to_unsafe_layout_node(&parent); - - if parent_layout_data - .data - .parallel - .children_count - .fetch_sub(1, Ordering::Relaxed) == 1 { - // We were the last child of our parent. Construct flows for our parent. - } else { - // Get out of here and find another node to work on. - break - } + if parent_layout_data + .data + .parallel + .children_count + .fetch_sub(1, Ordering::Relaxed) == 1 { + // We were the last child of our parent. Construct flows for our parent. + } else { + // Get out of here and find another node to work on. + break } } }