diff --git a/components/layout_2020/flow/mod.rs b/components/layout_2020/flow/mod.rs index 205acad83dd..de22f1a427d 100644 --- a/components/layout_2020/flow/mod.rs +++ b/components/layout_2020/flow/mod.rs @@ -141,17 +141,13 @@ impl BlockContainer { containing_block_writing_mode: WritingMode, ) -> ContentSizes { match &self { - Self::BlockLevelBoxes(boxes) => { - let mut content_sizes = ContentSizes::zero(); - for box_ in boxes { - content_sizes.max_assign( - &box_ - .borrow_mut() - .inline_content_sizes(layout_context, containing_block_writing_mode), - ); - } - content_sizes - }, + Self::BlockLevelBoxes(boxes) => boxes + .par_iter() + .map(|box_| { + box_.borrow_mut() + .inline_content_sizes(layout_context, containing_block_writing_mode) + }) + .reduce(ContentSizes::zero, ContentSizes::max), Self::InlineFormattingContext(context) => { context.inline_content_sizes(layout_context, containing_block_writing_mode) }, diff --git a/components/layout_2020/sizing.rs b/components/layout_2020/sizing.rs index ec07861c374..ccf60ceb933 100644 --- a/components/layout_2020/sizing.rs +++ b/components/layout_2020/sizing.rs @@ -33,9 +33,11 @@ impl ContentSizes { } } - pub fn max_assign(&mut self, other: &Self) { - self.min_content.max_assign(other.min_content); - self.max_content.max_assign(other.max_content); + pub fn max(self, other: Self) -> Self { + Self { + min_content: self.min_content.max(other.min_content), + max_content: self.max_content.max(other.max_content), + } } /// Relevant to outer intrinsic inline sizes, for percentages from padding and margin.