Reduce the scope of the unsafe block in ParallelPostorderDomTraversal.

This commit is contained in:
Ms2ger 2015-06-25 22:31:48 +02:00
parent b98a7f27a9
commit b6e5f8e7b6

View file

@ -186,22 +186,21 @@ trait ParallelPostorderDomTraversal : PostorderDomTraversal {
Some(parent) => parent, Some(parent) => parent,
}; };
unsafe { let parent_layout_data = unsafe {
let parent_layout_data = &*parent.borrow_layout_data_unchecked()
(*parent.borrow_layout_data_unchecked()).as_ref().expect("no layout data"); };
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
if parent_layout_data .parallel
.data .children_count
.parallel .fetch_sub(1, Ordering::Relaxed) == 1 {
.children_count // We were the last child of our parent. Construct flows for our parent.
.fetch_sub(1, Ordering::Relaxed) == 1 { } else {
// We were the last child of our parent. Construct flows for our parent. // Get out of here and find another node to work on.
} else { break
// Get out of here and find another node to work on.
break
}
} }
} }
} }